2014年11月1日土曜日

開発環境

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本 (Eric Freeman 著、Elisabeth Freeman 著、Kathy Sierra 著、Bert Bates 著、佐藤 直生 監訳、木下 哲也 翻訳、有限会社 福龍興業 翻訳、オライリージャパン)の4章(Factoryパターン: OOの利点を活用した構築)、知力(p.111)を解いてみる。

その他参考書籍

知力(p.111)

コード(BBEdit, Emacs)

// 他のクラスのメソッドで具象クラスをインスタンス化するようにして、他の部分から分離やカプセル化すればいいのかな
// インスタンス化している、変化する、すべての部分
public class CreateDuck {
    public Duck createDuck()
    {
        Duck duck;
        if (picnic) {
            duck = new MallardDuck();
        } else if (hunting) {
            duck = new DecoyDuck();
        } else if (inBathTub) {
            duck = new RubberDuck();
        }
        return duck;
    }
}

public class Sample {
    CreateDuck cd;
    
    public Sample(CreateDuck cd) {
        this.cd = cd;
    }

    public void method() {
        Duck duck;
        // 新しいコード
        duck = cd.createDuck();
        // 元のコード
        // if (picnic) {
        //     duck = new MallardDuck();
        // } else if (hunting) {
        //     duck = new DecoyDuck();
        // } else if (inBathTub) {
        //     duck = new RubberDuck();
        // }
    }
}

0 コメント:

コメントを投稿