FactoryMethod

渡した引数によって生成するインスタンスが違うような場合に、FactoryMethodパターンは使う。

4. FactoryMethod パターン | TECHSCORE(テックスコア)

詳細は、
Sample/designpattern/factory_method/factory_method/src/factory_method at master · bg1bgst333/Sample · GitHub
を見てもらうとして、

main.cppは、

TYPE_ABCとTYPE_DEFでどう違うか。

$ vi main.cpp 
$ g++ -o main main.cpp print_abc_product.cpp print_def_product.cpp print_factory.cpp
$ ./main 
abc
def
$

TYPE_ABCは"abc"を出力するインスタンス、TYPE_DEFは"def"を出力するインスタンスで、別のものになっている。

Sample/designpattern/factory_method/factory_method/src/factory_method at master · bg1bgst333/Sample · GitHub