1
0

More than 1 year has passed since last update.

いす作りで考えるfactory methodパターン

Last updated at Posted at 2023-01-05

factoryを使わないパターン
①いす職人にウォールナットの木材で椅子を作るよう指示

factoryを使うパターン
①ウォールナット材職人に木材用意するよう指示
②いす職人に指定の木材職人から渡された木材で椅子を作るよう指示
※どんな木材かは意識しない。

登場クラスと紐づけ
iSample・・・広義の木材
Sample・・・ウォールナット材
iCreator・・・広義の木材職人
Creator・・・ウォールナット材職人
Logic・・・いす職人

プログラム

class Sample implements ISample {
}
interface ISample {   
}
interface ICreator {
    public ISample create();
}
class Creator implements ICreator{
    @Override
    public ISample create() {
        return new Sample();
    }
}
class Logic {
    private ICreator creator;
    Logic(ICreator creator) {
        this.creator = creator;
    }
    void doLogic() {
        ISample s = creator.create();
    }
}
public class Outer {
    public static void main(String[] args) {
        Logic l = new Logic(new Creator());
        l.doLogic();
    }
}

ひのき椅子を作らせたい場合、プログラムを以下のように対応する
・ひのき材(hSample)を追加
・ひのき材職人(hCreator)を追加
・いす職人に引き継ぐ職人をウォールナット職人⇒ヒノキ職人に差し替える(new Logic(new hCreator())

参考にしたサイト
https://blog.ecbeing.tech/entry/2021/01/20/114000

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0