Demeter法则表明,您只应直接调用了解的对象。也就是说,不要进行方法链接来访问其他对象。这样做会在中间对象上建立不适当的链接,不适当地将您的代码与其他代码耦合在一起。 那很糟糕。 解决方案是,您所知道的类本质上需要公开简单的包装器,将责任委托给它有关系的对象。 那很好。 但是,这似...
我和同事为我们的客户设计了一个系统,我们认为我们创造了一个漂亮干净的设计。但是,我们引入了一些耦合问题。我可以尝试创建一个包含与我们的设计相同问题的示例设计,但如果您原谅我,我将创建我们的设计摘录以支持问题。 我们正在开发一个系统,用于登记患者的某些治疗方法。为避免出现到图像的断链,我将描述...
什么是将渲染代码与实际游戏引擎/逻辑代码分离的最佳方法?这样做甚至是一个好主意吗? 假设我们有一个名为Knight的游戏对象。 Knight必须在屏幕上呈现给用户查看。我们现在有两种选择。要么我们给Knight一个可以调用的“Render/Draw”方法,要么我们创建一个渲染器类来负责渲染所...
类似Sonar的代码质量度量工具确实提供了下钻到类级别,查找以下两个数字的能力: 入侵耦合数 出侵耦合数 这两个参数是什么?你能用一个简单的虚构例子来描述一下吗?
为保护当事人的隐私,类名已更改。 如果我有一个名为 ISomeInterface 的接口,并且我有两个继承该接口的类,FirstClass 和 SecondClass。其中 FirstClass 使用必须被处理的资源,而 SecondClass 则不需要。 问题是,我应该从哪里继承 IDi...
我有一个模型需要从外部数据源加载数据。存在许多Web服务,我的模型可以从这些服务中获取数据(可交换),但我不想创建难以更改服务的代码(基于可变和固定使用的成本显著不同,并且很可能需要进行更改)。 我想创建一个驱动程序来执行交互操作,然后如果需要切换服务,再创建进一步的自定义驱动程序。不幸的是...
我正在阅读 Steve McConell 的《代码大全》,他在松散耦合的一节中给出了一个例子,它涉及到一个计算员工假期天数的方法接口,该方法是基于员工入职日期和销售额来计算的。作者建议将入职日期和销售额作为方法的参数而不是使用员工实例:int holidays(Date entryDate, ...
我坚信后端和前端之间必须紧密耦合这个异端的想法:我希望现有的、隐含的关于后端的知识能够在生成用户界面时自动利用。例如,如果一个VARCHAR列有一个最大长度为20个字符,那么GUI应该自动限制用户在相关表单字段中输入超过20个字符。 而且我非常反感想要定义我的数据库表或基于某些技巧的ORM,...