Kanade Logoカナデ Kanade

5. ビルダーパターン (Builder)

メソッドチェーンを活用して複雑なオブジェクトを段階的に組み立てるビルダーパターンについて学びましょう。

ビルダーパターン (Builder Pattern)

ハンバーガーを注文する時、パンの種類、パティの数、レタスの追加など選ぶものが本当に多いですよね?オプションが多いオブジェクトを生成する時、コンストラクタ(最初に作られる時)のパラメータを何十個も渡す代わりに、メソッドをチェーンのようにつなげて段階的に組み立てられるようにするパターンがまさにビルダーパターンですね。

カナデ(Kanade)では、『私』を返そうを活用してメソッドチェーン(Method Chaining)を完璧に実装できるんですよ!

【ハンバーガー】を設計しよう:
    『パン』を【文字列】の「ごまパン」にしよう
    『パティ』を【数字】の1にしよう
    『野菜』を【論理】の真にしよう
    
    〈情報を見る〉を作ろう():
        枠「ご注文のハンバーガー:パン={『私』の『パン』}、パティ={『私』の『パティ』}枚、野菜={『私』の『野菜』}」を出力しよう

(参考:ハンバーガーを段階的に組み立てるビルダークラスです)
【ハンバーガービルダー】を設計しよう:
    『_バーガー』を【ハンバーガー】の新しい【ハンバーガー】()に隠そう
    
    【ハンバーガービルダー】を返す〈パンを変える〉を作ろう(【文字列】の『新しいパン』):
        『私』の『_バーガー』の『パン』を『新しいパン』にしよう
        『私』を返そう
        
    【ハンバーガービルダー】を返す〈パティを追加する〉を作ろう(【数字】の『個数』):
        『私』の『_バーガー』の『パティ』を『個数』にしよう
        『私』を返そう
        
    【ハンバーガービルダー】を返す〈野菜を抜く〉を作ろう():
        『私』の『_バーガー』の『野菜』を偽にしよう
        『私』を返そう
        
    【ハンバーガー】を返す〈作る〉を作ろう():
        『私』の『_バーガー』を返そう

(参考:メソッドを数珠繋ぎのようにつなげてみましょうか?)
『私の注文』を【ハンバーガー】の新しい【ハンバーガービルダー】()の〈パンを変える〉(「ライ麦パン」)の〈パティを追加する〉(3)の〈野菜を抜く〉()の〈作る〉()にしよう

『私の注文』の〈情報を見る〉()を実行しよう

プレイグラウンド (Playground)

ターミナル
コードを書いて「実行」ボタンを押してください。