内部の具体的な処理が違っても、大まかな処理の流れが定型化されたものである場合は、TemplateMethodパターンを使うことができる。
3.TemplateMethod パターン | TECHSCORE(テックスコア)
詳細は、
Sample/designpattern/template_method/template_method/src/template_method at master · bg1bgst333/Sample · GitHub
を見てもらうとして、
main.cppは、
ptrはヘッダとフッタの付いた文字列を定型処理で出力するので、ヘッダとフッタをセット。
ptr2はファイルに文字列を定型処理で出力するので、ファイル名と本文をセット。
$ ls main print_file.cpp print_header_footer_ex.cpp print_proc.cpp main.cpp print_file.h print_header_footer_ex.h print_proc.h $ g++ -o main main.cpp print_proc.cpp print_header_footer_ex.cpp print_file.cpp $ ./main --S-- ABCDE --E-- $ ls main print_file.cpp print_header_footer_ex.cpp print_proc.cpp test.txt main.cpp print_file.h print_header_footer_ex.h print_proc.h $ cat test.txt ABCDE$
ヘッダとフッタの付いた文字列が出力されている。
ファイルtest.txtにも元の文字列は出力されている。