结构设计模式:(私人类数据)这两个例子之间是否存在差异

时间:2017-12-05 08:04:57

标签: java design-patterns encapsulation design-principles

以下是来自sourcemaking.com的此模式的一个示例:

https://sourcemaking.com/design_patterns/private_class_data

有两个例子,划掉的主类和包含数据类的主类。

我的问题是以下内容与链接上给定的正确实现之间的区别是什么:

public class MainClass {

    private final <Type> attribute1;
    private final <Type> attribute2;
    private final <Type> attribute3;

    public MainClass(<Type> attribute1, <Type> attribute2, <Type> attribute3 {
        this.attribute1 = attribute1;
        this.attribute2 = attribute2;
        this.attribute3 = attribute3;
    }
}

干杯

1 个答案:

答案 0 :(得分:2)

此处的代码不是该模式的示例。划掉的模型是不该做的。

您需要一个单独的Java对象来保存属性,并且该页面列出了模式存在的确切原因 - 限制字段的曝光

从那时起

  

主类必须通过数据类的构造函数

初始化数据类

数据对象可以声明为final