add State.cpp, Strategy.cpp and TemplateMethod.cpp