1

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

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

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) 这难道是“Private Data”设计模式吗?

4

1 回答 1

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.

于 2012-11-27T13:27:01.283 回答