abstructFactoryとFactoryMethodの違い

| Comments

未だによくわかっていなかったので簡単にまとめます。

簡単に言うと、FactoryMethodを抽象化したものがAbstructFactoryです。 実際のプログラムで使うのはAbstructの方になりそうです。

FacroryMethod

1
2
3
4
5
6
7
public class SampleClass{
    public static void main(String args[]){
        FactoryImpl factory = new FactoryImpl();
        SomeObject obj = factory.createSomeObject();
        obj.execute();
    }
}

AbstructFactory

1
2
3
4
5
6
7
public class SampleClass{
    public static void main(String args[]){
        Factory factory = new FactoryImpl();
        SomeObject obj = factory.createSomeObject();
        obj.execute();
    }
}

要は、変更があった際にFactoryクラス自体を直接書き換えるか、 Factoryクラスの実装を別のFactoryImplクラスに付け替えるかの違いです。

Factory内のInjectionが複数あった時や、Injectionするのはこのセットで決まっている時などはAbstructFactoryを使うと思います。(ほぼ全てかも)

Comments