如何向新程序员解释松散耦合和信息隐藏? [关闭]

2024-04-03

如何向新程序员解释松散耦合和信息隐藏?我有一个程序员,我为他编写设计,但他似乎无法掌握松散耦合和信息隐藏的概念。

我编写的设计中,所有内容都按功能很好地分解为类(数据访问是单独的,一个用于请求的类,一个控制器,总共大约 5 个类)。他们带着修改后的设计回来了,其中一半的类从另一半继承(并且不存在“is-a”关系)和许多公共变量。

我如何理解将事物分开可以更容易维护的想法?


询问他是否可以借给你 10 美元,把他的钱包暂时交给你,然后你自己拿走钱。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向新程序员解释松散耦合和信息隐藏? [关闭] 的相关文章

  • 耦合、内聚和迪米特定律

    The 德墨忒耳定律 http en wikipedia org wiki Law of Demeter表示你应该只与你直接了解的对象交谈 也就是说 不要执行方法链接来与其他对象通信 当您这样做时 您正在与中间对象建立不适当的链接 不恰当地
  • php oop 如何使用属性和方法形成类

    我是 php oop 的新手 我对类有一些想法 但我仍然不知道如何在创建的对象中使用它的属性和方法 我需要了解下面报告的代码是否正确 如果不正确我做错了什么 我假设我有一个可以为我做任何事情的课程 我们称之为 Class myClass 现
  • Python 对象属性 - 访问方法

    假设我有一个具有某些属性的类 在 Pythonic OOP 中 如何访问这些属性是最好的 就像obj attr 或者也许编写 get 访问器 此类事物可接受的命名风格是什么 Edit 您能否详细说明使用单下划线或双前导下划线命名属性的最佳实
  • 如何将一个窗格连接到另一个窗格

    如何将输出连接到paneWithList PaneWithList其上有一个监听器JList以便将所选行输出到控制台 我怎样才能将该输出定向到JTextPane关于输出 Could PaneWithList触发一个事件Main拿起 会属性更
  • UserDict 类的优点?

    使用有什么好处UserDict class 我的意思是 我真正得到的不是 class MyClass object def init self self a 0 self b 0 m MyClass m a 5 m b 7 我将写下以下内容
  • Python Tkinter OOP 布局配置

    我正在尝试使用 tkinter 构建一个应用程序 该布局在没有 OO 原则的情况下工作 但我很难理解应该如何将其转移到 OO The layout is as shown in the pic below 1280x720px 我有以下内容
  • Java中的引用变量到底是什么?它与其他变量有何不同?

    我一直在研究 Java 中的继承 作者声明 被引用的对象类型 而不是引用变量的类型 决定了将执行哪个版本的重写方法 这种说法非常令人困惑 这本书所指的是多态性 更具体地通过动态调度 简而言之 想象一下以下类 public class Per
  • 如何让枚举存储每个条目的额外信息

    我有一组包含相关信息的项目 这些项目是由我 程序员 定义的 用户不需要更改它们 它们永远不需要根据配置进行更改 并且它们唯一可能更改的时间是在我的应用程序的未来版本中 我事先知道这些项目应该有多少 以及它们的确切数据是什么 枚举是一种很棒的
  • 如何从类外部更改公共 R6 类方法?

    我希望能够在我的 R6 类中重新定义公共方法 以便它根据该类保存的数据类型进行更改 如下所示 library R6 Simple lt R6Class Simple public list dt mtcars my print functi
  • 参考接口创建对象

    引用变量可以声明为类类型或接口类型 如果变量声明为接口类型 则它可以引用实现该接口的任何类的任何对象 根据上面的说法我做了一个理解上的代码 正如上面所说声明为接口类型 它可以引用实现该接口的任何类的任何对象 但在我的代码中显示display
  • 覆盖Java中的属性[重复]

    这个问题在这里已经有答案了 在 Java 中 我最近有几个项目 我使用了这样的设计模式 public abstract class A public abstract int getProperty public class B exten
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 类是否应该有静态和非静态成员

    我试图找出一个类何时适合同时具有静态和非静态函数 又名 obj new ClassA obj gt doOOPStuff something ClassA doStaticStuff Note This example is done in
  • 检查 Objective-C 块类型?

    这主要是出于好奇 我不太确定它的实际用途是什么 但就这样吧 由于块也是 Objective C 对象 是否可以检查它们的类型 也就是说 它是否响应isKindOfClass 消息以及如何使用该消息来处理块 我天真的以为事情大概是这样的 vo
  • R 中使用 `UseMethod()` 与 `inherits()` 来确定对象的类

    如果我需要根据 R 对象的类以不同的方式处理它们 我可以使用if and else在单个函数内 foo lt function x if inherits x list Foo the list else if inherits x num
  • 在javascript中访问函数内的实例变量?

    如何以最简单的方式访问函数内的实例变量 function MyObject Instance variables this handler Methods this enableHandler function var button doc
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • 将类的实例(类的对象)传递给另一个类

    我不明白的是b Bar a 它有什么作用 怎么Bar taking a作为一个论点 那岂不是意味着Bar继承自a 什么是Bar Foo1 Foo 是不是意味着Foo1是类的一个实例Foo 我们如何访问Foo1当它本身是一个对象时 是什么意思
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个

随机推荐

  • 禁用一个函数的返回值优化

    struct X void a void b X foo void u void v foo 在汇编器中实现 i386 X 类型的返回值的地址作为隐藏参数传递给 foo 如果使用 O0 编译测试代码 则代码将按预期工作 如果使用 O3 编译
  • AH01626:要求全部授权授权结果:已授权

    我在我的网站上运行 apache 2 4 6 我不断在我的 apache 错误日志中看到这条消息一遍又一遍地重复 Tue Nov 10 01 42 40 659710 2015 authz core debug pid 10727 mod
  • 开源 BPM 工具(如 Activiti、bonita)和 Windows Workflow Foundation 之间有什么区别

    我试图找到一个基于asp net的免费开源BPM工具 但不幸的是我没有找到这样的工具 但最近我读到一篇关于Windows Workflow Foundation的文章 那么它是否提供了类似于开源BPM工具如Activiti bonita J
  • 为什么在 WPF 中将 INotifyPropertyChanged 与绑定一起使用?

    我注意到 几乎我在互联网上找到的有关绑定的每个示例都有一个类 绑定到另一个属性 该类继承 INotifyPropertyChanged 接口并在该类属性的 set 部分中使用一个方法 我尝试从绑定示例中删除该部分 其工作原理与该方法相同 这
  • 正则表达式:以不同顺序匹配组而不重复组

    假设我有两个这样的字符串 XABY XBAY 匹配两者的简单正则表达式如下所示 X AB BA Y 但是 我遇到的情况是 A 和 B 是复杂的字符串 我正在寻找一种方法来避免必须将它们分别指定两次 在 的每一侧 有没有办法做到这一点 这可能
  • Laravel Sanctum 自定义守卫

    我的 laravel 应用程序中有多个守卫 Code config auth php defaults gt guard gt user passwords gt users guards gt user gt driver gt toke
  • 目标文件和静态库(归档文件)有什么区别?

    似乎归档文件可以从目标文件生成 ar rvs libprofile a profile o 目标文件和归档文件有什么区别 在我看来 两者都可以直接与 gcc 一起使用 例如 gcc c profile o or gcc c libprofi
  • 为什么我的闹钟马上就响了? (安卓)

    尝试为一周中的某些天设置闹钟 但目前很困惑为什么这个闹钟会立即被触发 无论我以小时和分钟的形式传递什么 我知道一周中的某一天是错误的 只是还没到那一步 public void setReminder int hr int min int d
  • controller.js.coffee 中的函数

    我在使用 CoffeeScript 创建函数时遇到一些问题 我想我错过了一些东西 对于我的用户控制器 我想为注册表单创建客户端验证 我认为我错过了这一切如何运作的一些基本内容 咖啡脚本 资产 users js coffee validate
  • 使 Elixir 应用程序在源代码更改时重新编译并重新加载

    如何在每次修改源代码时自动重新编译并重新加载我的 iex mix 应用程序 如果 iex mix 组合无法做到这一点 那么最简单的替代方案是什么 我已经检查了phoenix的重新加载方法 对于我的小型测试项目来说 它似乎并不容易实现 我也知
  • Excel 在复制时弄乱了我的公式,我怎样才能阻止它更改一部分而不更改另一部分?

    所以我正在使用一个正在更新的旧数据库系统 以前它运行过许多不同的文件 一个包含电子邮件 一个包含数字 你明白了 不管怎样 在尝试编译成一个文件时 我遇到了一个障碍 有些人没有电话号码或电子邮件等 这意味着我不能只是复制旧数据 PersonI
  • 在循环中创建多维数组

    我正在尝试在循环中创建这样的数组 dataPoints array array x gt 4321 y gt 2364 array x gt 3452 y gt 4566 array x gt 1245 y gt 3452 array x
  • 图像地图的绘图点

    我想向网页上的图像地图添加自动区域突出显示 我发现 mapper js 库对于实现此目标非常有用 但是围绕区域地图创建 x y 图非常耗时 有没有一种快速的方法来创建不规则多边形的边界坐标 例如可以在区域地图上找到的坐标 EDIT必须有办法
  • 无法获取socket.io.js

    我实际上正在做一个小项目 我应该用node js mongoDB socket io 和canvas 重新创建一个绘图多人游戏 抽屉工作得很好 服务器似乎也工作得很好 我的注册 登录 会话和数据库已启动并正常工作 唯一的问题是 socket
  • API 的错误代码模式

    API错误代码响应模式有哪些好的选择 而不是使用不同的代码来指示不同类型的错误 100001 username not provided 100002 password not provided 100003 password too sh
  • 包装| OpenSCManager 失败 - 访问被拒绝。 (0x5)

    我尝试在 Windows 8 1 pro 64 位 上安装 Archiva 但不断收到如下相同的错误 包装 OpenSCManager 失败 访问被拒绝 0x5 我仅以管理员身份登录 但我仍然遇到同样的错误 对于同一问题 我看到的大多数答案
  • ASP.NET MVC 强类型部分视图,给出无法加载类型错误

    我正在尝试使用使用 Html RenderPartial 呈现的 MVC 视图用户控件 创建强类型视图 我的 ascx 文件的顶部如下所示 目前此页面上没有其他内容 当我执行应用程序并加载呈现此控件的页面时 出现以下错误 Could not
  • Java 中的异常。我们为什么要拥有多个可检查类和一个不可检查类呢?

    我是 Java 编程的新手 我刚刚开始学习异常 在 API 文档中发现 Exception 类的所有子类都有两个构造函数 一个默认构造函数 另一个带有 String 参数 所有这些类之间的区别在于其中一些是可检查的而另一些是不可检查的 Un
  • 复制每日期间的最后一个值

    我有一个多日 XTS 对象 并且我正在尝试创建一个指标 该指标一旦为真 则在当天剩余时间内保持为真 我正在尝试的方法 但它不起作用 是将 na locf 函数与 apply daily 结合起来 output lt apply daily
  • 如何向新程序员解释松散耦合和信息隐藏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi