FactoryMethodパターンとAbstractFactoryパターンについて

FactoryMethodパターンはあるオブジェクトを生成するインターフェイスを作成し、対象オブジェクトの作成に使用することで、より柔軟にしようというもの。

make_shared<derived> や new derived など、インスタンスの生成はどうしても具体的になってしまう。
オブジェクトの生成すらもインターフェイスを通すことに具体的になる場所を後のほうに押し付ける。


AbstractFactoryパターンはFactoryMethodパターンを少し進めたもの。

ある関係を持つAとBのインスタンスを生成する場合、1つ1つにFactoryMethodを作成するより、AとBを作成するインターフェイスを持ったFactoryを作成しようという話。