我不明白直接组件对象在Law of Demeter's article的上下文中的含义。我可以看到这个词来自David Block's article。那么,这个术语是什么?我在哪里可以得到真实的例子和更多关于它的信息?
答案 0 :(得分:2)
直接组件对象是该类的成员变量。例如:
class MyClass
{
IService service;
public MyClass(IService service)
{
this.service = service;
}
public void MyMethod(Param param)
{
// O itself
this.AnotherMethod();
// m's parameters
param.Method1();
// Any objects created/instantiated within m
TempObject temp = new TempObject();
temp.DoSomething();
// O's direct component objects
service.ProvideService();
// violates Law of Demeter
service.GetConfig().Update();
}
private void AnotherMethod()
{
...
}
}
此示例显示了被认为符合Demeter法则的各种方法调用。在这种情况下,成员变量service
是直接组件对象。