TEMPLATE METHOD 템플릿 메소드
- 상위 클래스에 구조를, 하위 클래스에 처리를 구현하는 패턴.
- 공통 사항은 추상클래스에서 구현, 처리는 각각의 서브 클래스에서 구현.
- 코드 중복을 줄이고, 리펙토리에 유용, 확장에 용의.




// 샘플 코드 class AbstractClass{ private: virtual void subMethod() = 0; public: void templateMethod() {subMethod();} }; class ConcreteClass : public AbstractClass{ public: void subMethod() override {cout<< "subMethod"<<endl;} }; int main(){ AbstractClass *test = new ConcreteClass; test ->templateMethod(); delete test; return 0; }



//AbstractClass class 라면{ private: virtual void 스프넣기() = 0; void 물끓이기() {cout<<"물을 끓인다"<<endl;} public: void 만들기(){ 물끓이기(); 스프넣기(); } }; //ConcreteClass class 짜장라면 : public 라면{ private: void 스프넣기() override {cout<<"짜장 스프을 넣는다"<<endl;} }; // Main int main(){ 라면* a = new 짜장라면; a->만들기(); delete a; return 0; }



+ Recent posts