011-003-013
ファクトリメソッドとコンストラクタチェーン
上級
問題説明
ファクトリメソッドとコンストラクタチェーン
この問題では: Colorクラスでprivateコンストラクタチェーンとstaticファクトリメソッドを組み合わせた設計パターンを実装するプログラムを作成します。
学習目標: ファクトリメソッドパターンとコンストラクタチェーンの組み合わせによる柔軟なオブジェクト生成を理解する
概要
コンストラクタをprivateにして外部からの直接生成を禁止し、staticファクトリメソッドを通じてのみインスタンスを生成するパターンです。ファクトリメソッドには名前を付けられるため、生成の意図を明確に表現できます。
仕様
Colorクラス:red(int)、green(int)、blue(int)、name(String)フィールド- privateコンストラクタ(this()チェーン):
Color(int r, int g, int b)とColor(int r, int g, int b, String name) - staticファクトリメソッド:
of(int r, int g, int b),ofRed(),ofGreen(),ofBlue() toString()で色情報を返す
出力形式
Color[name=Custom, rgb=(128, 64, 255)]
Color[name=Red, rgb=(255, 0, 0)]
Color[name=Green, rgb=(0, 255, 0)]
Color[name=Blue, rgb=(0, 0, 255)]
