是否允许根据得墨忒耳定律调用组件的组件?
我所说的组件是指一个对象
这是“排他地”注入容器或在容器中创建的
与它的容器具有相同的生命周期
例如,Brain
是 a 的一个组成部分Dog
:
partial class Dog
{
private readonly IBrain brain;
public Dog(IBrain brain)
{
this.brain = brain;
}
}
这是我找到的一些信息:
http://c2.com/cgi/wiki?LawOfDemeter
您的方法可以直接在其自己的字段上调用方法(但不能在字段的字段上)
消息目标只能是以下对象之一:
...对象的属性引用的对象
http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/paper-boy/demeter.pdf
一个对象的方法应该只调用以下几种对象的方法:
...
它创建/实例化的任何对象
它的直接组件对象
这是一个案例:
partial class Dog
{
public void Command(string cmd)
{
var movement = brain.GetMemory().GetMovement(cmd);
skeleton.ExecuteMovement(movement);
}
}