在我工作的代码库的几个地方,我看到具有这些属性的类:
public class LinkEnd
{
public Joint AssociatedJoint { get; set; }
public Point Location
{
get
{
return AssociatedJoint.Location;
}
set
{
AssociatedJoint.Location = value;
}
}
...
}
这种暴露财产属性的模式是否存在正式用语?我理解getter和setter,我特别感兴趣的是,如果有一个术语描述一个类,它将一个属性表示为一个属性,并用另一个封装对象的属性支持该属性。
答案 0 :(得分:1)
我认为你不是在寻找一种模式,而是寻求demeter的规则。
更多:http://en.wikipedia.org/wiki/Law_of_Demeter
请注意,这并不意味着您始终无法直接访问其他对象的属性。您不应该访问不同抽象级别的属性。
例如:什么是更好的方法?
digestive_system = person.digestive_system()
stomach = digestive_system.stomach()
stomach.put(food)
与
person.eat(food)
很清楚。