E.g。
在A组:
b.doThing();
在B组:
doThing() {
c.doThing();
}
OR
在A班:
b.getClassC().doThing();
这种情况的惯例是什么?
答案 0 :(得分:7)
根据Law of Demeter,你应该采用第一种方式,即只调用自己委托给类C的类B的方法。这样,你减少了类之间的依赖关系,这对于可重用性和可维护性。
答案 1 :(得分:0)
通常它将是第二种情况,除非实现类不仅仅执行一行,例如设置/检查状态或准备其他方法等。
这样做的最大好处是您无需通过调用
来担心实现细节b.getClassC().doThing();
您不关心doThing
是否会在结构上或有条不紊地改变,否则您将提供更多参数。
答案 2 :(得分:0)
面向对象是指让对象为你做事。因此,你最好不要让'b'做某事,然后它会调用'c'这一事实对你来说是隐藏的,并且可以在将来改变它。你不想问'b'的组件对象,然后对它们做些什么。