Я читал об исправлениях строителя из ссылки http://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns#Creational_Patterns, а приведенный ниже код, похоже, использует идею, похожую на pimpl idiom, указав указатель на pizzaBuilder в классе Cook как частный член. Есть ли какое-либо совпадение между идиомами сутенера и тем, как оно используется в дизайнерских шаблонах?совпадение между идиомой pimpl и шаблонами построек?
class Cook
{
public:
void setPizzaBuilder(PizzaBuilder* pb)
{
m_pizzaBuilder = pb;
}
Pizza* getPizza()
{
return m_pizzaBuilder->getPizza();
}
void constructPizza()
{
m_pizzaBuilder->createNewPizzaProduct();
m_pizzaBuilder->buildDough();
m_pizzaBuilder->buildSauce();
m_pizzaBuilder->buildTopping();
}
private:
PizzaBuilder* m_pizzaBuilder;
};
Не является ли pImpl главным образом из-за того, что компилятор должен знать размер объекта, а не из-за отсутствия модулей? – templatetypedef
@templatetypedef О, подождите, вы правы. Позвольте мне исправить свой ответ. – milleniumbug