티스토리 뷰

함수 동작 방식은 부모 클래스에서 정의 되고, 세부적인 처리 방법은 자식 클래스에서 재정의 하는 것을 템플릿 메소드 패턴이라고 합니다.

각 클래스 마다 고유한 같은 인터페이스를 제공하면서도, 다른 동작을 하기 위한, 객체 지향 프로그래밍에서의 다형성을 나타내는 대표적인 패턴이라고 할 수 있습니다.


class ItemOption
{
	virtual bool isUseItem(){return true;} //아이템이사용가능한상태인지
	virtual bool Use(){return true;} //아이템사용

	virtual bool Act()
	{
		if(!isUseItem())
			return false;

		return Use();
	}
};

class ItemOptionHeal : public ItemOption
{
	virtual bool isUseItem()
	{
		//언제나아이템사용가능상태이기에return true
		return true;
	}

	virtual bool Use()
	{
		//체력회복.
		return true;
	}
};

class ItemOptionCurePoison : public ItemOption
{
	virtual bool isUseItem()
	{
		//언제나아이템사용가능상태이기에return true
		return true;
	}

	virtual bool Use()
	{
		//독치료기능사용
		return true;
	}
};


댓글