- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个对象的 ArrayList,那么任何时候我需要调用 ArrayList 成员的任何方法时,我都需要这样做:
list.get(i).doSomething();
这看起来很可疑地违反了 Demeter 法则。我看不出有什么办法可以解决这个问题。这很好还是我应该重新考虑我如何做这样的事情。 ArrayList 是被定义为忽略 Demeter 法则的对象吗?
最佳答案
这不是违规。
如果你有课
Class A {
private B b1, b2, b3;
...
private void method() {
b1.doSomething();
b2.doSomething();
b3.doSomething();
}
}
没有违规。如果我们收集 B
的实例进入 List<B>
你得到
Class A {
private List<B> listOfB;
...
private void method() {
listOfB.forEach(B::doSomething);
}
}
使用 List<B>
持有 B
的实例导致 A
之间没有更紧密的耦合和 B
.
关于java - 使用 ArrayLists 保持 Demeter 法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38660167/
我正在尝试了解如何正确使用被动 View 。在我看来,我在被动 View 上看到的每个例子都违反了德米特法则: //In the presenter code myview.mytextfield.t
如果我有一个包含方法 f 的类 C,该方法将 D 类型的对象(我定义的另一个类)作为参数 如果我在方法f中调用对象D的方法,是否会违反得墨忒耳定律?为什么? 例如: public C { pu
我愿意遵守得墨忒耳法则。但我也想延迟加载一些传递给构造函数的对象。我应该如何实现?通过包装类?传递函数指针? 最佳答案 您实际上可以编写一个通用包装器来完成此操作: template class L
从这里引用:https://en.wikipedia.org/wiki/Law_of_Demeter More formally, the Law of Demeter for functions r
以下代码打破了 Law of Demeter : public class Student extends Person { private Grades grades; public Stu
感觉好像走到了死胡同。如果我理解正确,那么如果我遵循 Law of Demeter我永远无法制作一个返回对象的方法,然后客户端代码调用它。我只是在考虑总是返回一个对象的工厂模式。是的,有返回对象的映射
我有一个简单的 Store 类,其中包含一个 Inventory。 Inventory 包含一个 Item 列表。为了修改 Inventory 中的其中一个 Item,我必须这样写: Store st
public class BigPerformance { public decimal Value { get; set; } } public class Performance
我知道以下是一个主观问题,但您的指导方针确实有助于我追求干净、可测试的代码。 请考虑以下示例,我认为它违反了一系列设计原则。 public class OfferEligibilityCheckerS
我最近才知道 Law of Demeter . 像很多事情一样,我意识到这是我已经在做但没有名字的事情。虽然有几个地方我似乎违反了它。 例如... 我可能有一个地址对象: public class A
在敏捷开发人员的基本技能中,在需求与能力接口(interface)中,第 12 章,我试图理解作者在本章末尾提到的应用分度法则的挑战所提出的主要解决方案。 为了使故事简短。 我们从以下研究案例开始:
我经常发现自己做了很多 delegating . 在Ruby Science ,它说: Many delegate methods to the same object are an indicato
我有点想用 Java 8 流编写 Selenium 页面对象,如下面的代码所述,并收到评论说我的代码违反了 Demeter 法则,因为我在一行中执行了很多操作。我被建议将代码分解为第一个流以收集列表并
我有一个游戏引擎,我将物理模拟从游戏对象功能中分离出来。所以我有一个物理 body 的纯虚拟类 class Body 我将从中导出物理模拟的各种实现。我的游戏对象类看起来像 class GameObj
我对如何避免一对多关联违反得墨忒耳法则感到困惑。假设我有一个这样的模型: class Organization < ActiveRecord::Base has_one :address ha
如果我有一个对象的 ArrayList,那么任何时候我需要调用 ArrayList 成员的任何方法时,我都需要这样做: list.get(i).doSomething(); 这看起来很可疑地违反了 D
我在设计在 SpringMVC/Hibernate Rest Web 应用程序中的 @ManyToMany 集合上运行的服务方法时遇到问题,而不使用违反 Demeter 法则的长方法链。我的应用程序有
这可能是一个幼稚的问题,但是 RSpec 的测试 DSL 是否违反了 Demeter 法则? 这是来自 http://rspec.info 的 RSpec DSL 示例: bowling.score.
假设您有一个类 Car,它有一个 Driver。如果你想访问司机的年龄,你会这样做: @car.driver_age 代替 @car.driver.age 如果您在 Car 模型中委托(delegat
我正在使用一个工具来自动生成按层次结构组织的 XML 文件的类表示形式。 XML 文件是我的应用程序需要能够访问的设置文件(只读)。 如果我将顶级节点(例如,AppSettings)传递给需要访问一项
我是一名优秀的程序员,十分优秀!