開始行: * キーワード [#o4d1cb12] - インスタンス -- 生成 --- パラメータ * 何か [#cec283d8] 組み立て屋さん インスタンスを生成するために必要なパラメータをもつビルダ... Effective JavaでいうところのビルダーパターンとGoFが提唱す... 後者の特徴はDirectorがインスタンス生成のための手順をもっ... * なぜか [#x8ea4e87] 引数が多すぎるとコードの見通しが悪くなります。コンストラ... - コンストラクタの過剰なパラメータ数を回避 - クライアント側から生成パターンを特定しない デフォルトコンストラクタでインスタンスを生成して属性を後... - 責務(: 完全な状態であることのチェック)を分離 * どのように [#e300a122] たとえば、Userクラスのインスタンスを生成するためのUser.Bu... User { Builder { // required private name; // optional private gender; public Builder(name) { this.name = name; } public setGender(gender) { this.gender = gender; return this; } public build() { /* * ここでパラメータの整合性チェックをする * (チェックエラーの場合IllegalArgumentExceptionを... */ User user = new User(); user.name = this.name; user.gender = this.gender; return user; } } private name, gender; private User(){} } クライアントはUser.Builderを使ってUserクラスのインスタン... Client { do() { User user = new User.Builder("fukuchi").setGender("m... } } * 関連 [#s732bde2] - [[設計パターン/スタティックファクトリメソッド]] - [[設計パターン/ファクトリ]] * 参考 [#w0a6aff0] - Effective Javaのビルダーパターン -- [[Item 2: Consider a builder when faced with many cons... -- [[Builderパターンについて考えてみる。 - 感謝のプログラ... - GoFが提唱するビルダーパターン -- [[7. Builder パターン | TECHSCORE(テックスコア)>http:/... -- [[Builder - Strategic Choice>http://d.hatena.ne.jp/asa... 終了行: * キーワード [#o4d1cb12] - インスタンス -- 生成 --- パラメータ * 何か [#cec283d8] 組み立て屋さん インスタンスを生成するために必要なパラメータをもつビルダ... Effective JavaでいうところのビルダーパターンとGoFが提唱す... 後者の特徴はDirectorがインスタンス生成のための手順をもっ... * なぜか [#x8ea4e87] 引数が多すぎるとコードの見通しが悪くなります。コンストラ... - コンストラクタの過剰なパラメータ数を回避 - クライアント側から生成パターンを特定しない デフォルトコンストラクタでインスタンスを生成して属性を後... - 責務(: 完全な状態であることのチェック)を分離 * どのように [#e300a122] たとえば、Userクラスのインスタンスを生成するためのUser.Bu... User { Builder { // required private name; // optional private gender; public Builder(name) { this.name = name; } public setGender(gender) { this.gender = gender; return this; } public build() { /* * ここでパラメータの整合性チェックをする * (チェックエラーの場合IllegalArgumentExceptionを... */ User user = new User(); user.name = this.name; user.gender = this.gender; return user; } } private name, gender; private User(){} } クライアントはUser.Builderを使ってUserクラスのインスタン... Client { do() { User user = new User.Builder("fukuchi").setGender("m... } } * 関連 [#s732bde2] - [[設計パターン/スタティックファクトリメソッド]] - [[設計パターン/ファクトリ]] * 参考 [#w0a6aff0] - Effective Javaのビルダーパターン -- [[Item 2: Consider a builder when faced with many cons... -- [[Builderパターンについて考えてみる。 - 感謝のプログラ... - GoFが提唱するビルダーパターン -- [[7. Builder パターン | TECHSCORE(テックスコア)>http:/... -- [[Builder - Strategic Choice>http://d.hatena.ne.jp/asa... ページ名: