アイテム2:作成者にパラメータがたくさんある場合は、コンストラクタを考慮してください.
パラメータが多い場合の対応方法
public class NutritionFacts {
private final sevingSize;
private final servings;
private final int calories;
private final int fat;
private final int sodium;
public NutritionFacts(int servingSize, int servings) {
this(servingSize, servings, 0);
}
public NutritionFacts(int servingSize, int servings, int calories) {
this(servingSize, servings, calories, 0);
}
public NutritionFacts(int servingSize, int servings, int calories, int fat) {
this.servingSize = servingSize;
this.servings = servings;
this.calories = calories;
this.fat = fat;
}
}
設定しないパラメータの値テクニック
ビルダアレイ
きどうモード
ビルダーオブジェクトを取得するには、
コンストラクタは、通常、生成するクラスで静的メンバークラスとして作成されます.
疑問:非栄養欠陥類は変わらない??
BuilderでのSetterメソッド
NutritionFacts cocacola = NutritionFacts.Builder(240, 8).calories(100).sodium(35).carbohydrate(27).build();
検証コード
コンストラクタの作成者とメソッドで入力パラメータを確認する
buildメソッド呼び出しのコンストラクション関数=複数のパラメータ間の不変量をチェック
不変と不変
コンストラクタと階層クラス
それ以外は
コンストラクタを使用すると、複数の可変パラメータ(varargs)パラメータを使用できます.
コンストラクタの柔軟性
短所
オブジェクトを作成する前にコンストラクタを作成する必要があります
パラメータが多いときに発光
Reference
この問題について(アイテム2:作成者にパラメータがたくさんある場合は、コンストラクタを考慮してください.), 我々は、より多くの情報をここで見つけました https://velog.io/@rescogitans/아이템-2-생성자에-매개변수가-많다면-빌더를-고려하라テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol