在我正在工作的代码库的多个地方,我看到了具有以下种类的属性的类:

public class LinkEnd
{
    public Joint AssociatedJoint { get; set; }

    public Point Location
    {
        get
        {
            return AssociatedJoint.Location;
        }
        set
        {
            AssociatedJoint.Location = value;
        }
    }

    ...
}


这种公开财产的模式是否有正式用语?我了解getter和setter,我特别感兴趣的是是否存在一个术语,将一个类描述为代表其属性的属性,并用另一个封装对象的属性来支持该属性。

最佳答案

我认为您不是在寻找模式,而是在寻找规则-得墨meter耳法则。

更多:http://en.wikipedia.org/wiki/Law_of_Demeter

请注意,这并不意味着您始终无法直接访问其他对象的属性。您只是不应访问不同抽象级别的属性。

例如:什么是更好的方法?

digestive_system = person.digestive_system()
stomach = digestive_system.stomach()
stomach.put(food)




person.eat(food)


很明显。

关于c# - 如何描述这种代码模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29580830/

10-17 01:04