【问题标题】:Private Data Class Design Pattern私有数据类设计模式
【发布时间】:2016-05-02 20:38:02
【问题描述】:

我有一个关于“私有数据类设计模式”的问题。

是否可以在“私有数据类设计模式”中同时拥有对数据类的 get 和 set 访问器。像下面那个

public class CircleData {
    public double Radius { get; set; }
    public Color Color { get; set; }
    public Point Point { get; set; }
}

public class Circle {
    public void Draw(CircleData circleData)
    {
        // Perform the draw operation
    }
}

这里我试图消除方法和属性(properties)之间的耦合 这是“私有数据”设计模式吗?

【问题讨论】:

    标签: design-patterns


    【解决方案1】:

    正如我在聊天中提到的,我不确定您尝试使用这种私有类数据模式做的事情是否对您有益。

    虽然您没有为您的属性显式实现私有后备存储,但从技术上暗示您确实拥有访问私有数据的公共属性,但我相信整个模式的重点是隐藏类的内部信息.

    更好的例子可能是以下字段/属性:

    private int _x = 5;
    private int _y = 15;
    
    public Point Point { 
        get {
            return new Point(_x, _y);
        }
        set {
            _x = value.X;
            _y = value.Y;
        }
    }
    

    但同样,只有当您使用独立于 Point 的 x/y 值时,这才会对您有益。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多