Шаг 4 - Фабричный метод. Factory Method

Фабричный метод - это основание для работы абстрактной фабрики и строителя. Предположим, наша игра должна производить территорию.

class CGame
{
public:
	virtual CTerrain* createTerrain();
	//....
}
class CTerrain
{
	//....
}

Оба класса абстрактные, потому что игра может вестись за людей или гномов, и соответственно территории могут быть людские или гномьи, а просто игры и территории не бывает. Игра должна породить территорию в зависимости от того, кто она (игра) на самом деле.

class CHumanTerrain : public CTerrain
{
	//....
}
class CHumanGame : public CGame
{
	CTerrain* createTerrain () { return new CHumanTerrain; };
}

Производящий метод createTerrain и есть фабричный метод. Структура паттерна такова: класс CCreator желает получать

CProduct, но предоставляет своим конкретным потомкам право решать, какой конкретный продукт производить.

4_1.gif (3534 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Albert Makhmutov - 02.07.2001