5. ビルダーパターン (Builder)
メソッドチェーンを活用して複雑なオブジェクトを段階的に組み立てるビルダーパターンについて学びましょう。
ビルダーパターン (Builder Pattern)
ハンバーガーを注文する時、パンの種類、パティの数、レタスの追加など選ぶものが本当に多いですよね?オプションが多いオブジェクトを生成する時、コンストラクタ(最初に作られる時)のパラメータを何十個も渡す代わりに、メソッドをチェーンのようにつなげて段階的に組み立てられるようにするパターンがまさにビルダーパターンですね。
カナデ(Kanade)では、『私』を返そうを活用してメソッドチェーン(Method Chaining)を完璧に実装できるんですよ!
【ハンバーガー】を設計しよう:
『パン』を【文字列】の「ごまパン」にしよう
『パティ』を【数字】の1にしよう
『野菜』を【論理】の真にしよう
〈情報を見る〉を作ろう():
枠「ご注文のハンバーガー:パン={『私』の『パン』}、パティ={『私』の『パティ』}枚、野菜={『私』の『野菜』}」を出力しよう
(参考:ハンバーガーを段階的に組み立てるビルダークラスです)
【ハンバーガービルダー】を設計しよう:
『_バーガー』を【ハンバーガー】の新しい【ハンバーガー】()に隠そう
【ハンバーガービルダー】を返す〈パンを変える〉を作ろう(【文字列】の『新しいパン』):
『私』の『_バーガー』の『パン』を『新しいパン』にしよう
『私』を返そう
【ハンバーガービルダー】を返す〈パティを追加する〉を作ろう(【数字】の『個数』):
『私』の『_バーガー』の『パティ』を『個数』にしよう
『私』を返そう
【ハンバーガービルダー】を返す〈野菜を抜く〉を作ろう():
『私』の『_バーガー』の『野菜』を偽にしよう
『私』を返そう
【ハンバーガー】を返す〈作る〉を作ろう():
『私』の『_バーガー』を返そう
(参考:メソッドを数珠繋ぎのようにつなげてみましょうか?)
『私の注文』を【ハンバーガー】の新しい【ハンバーガービルダー】()の〈パンを変える〉(「ライ麦パン」)の〈パティを追加する〉(3)の〈野菜を抜く〉()の〈作る〉()にしよう
『私の注文』の〈情報を見る〉()を実行しよう