2017-12-05 9 views
2

以下の違いがあり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

finalとして宣言することができますあなたの質問のC型の定義 –

+0

私は、ビジネスロジックからデータクラスを外部化することの利点が、より大きなクラスでより明白になると思います。この小さなクラスは実際にその例を提供しません。 – Joel

+0

パターンはGoFからのものではありません。それは私に反パターンのように見えます。 – jaco0646

答えて

2

あなたのコードは、そのパターンの例ではありません。クロスアウトされたモデルはしないことです。

あなたはパターンが存在する理由を正確属性、およびそのページのリストを保持するために、別のJavaオブジェクトを必要とする - フィールド

の露出を制限し、この時点以降

メインクラスは、データクラスを初期化する必要がありますデータクラスのコンストラクタ

を介してデータオブジェクトは、あなたがgeneriが欠落している

+0

私はOPがその点を理解したと思っていますが、彼の例では後に変更されていないことを確認するためにfinalとしてフィールドを宣言しています。それが私の思うところです。 – Joel

+0

違いはまだ別のオブジェクトがあることです。そして、そのオブジェクトは、トップレベルのクラスからの露出を必要としない他のビジネスロジックのファサードとして機能することができます –

+0

ファサードの角度は面白い、返信の人のおかげで面白いです – Seanra

関連する問題