упрощает программу: //: C10:K
Автор admin
Пятница, 19 июня 2009 11:32
упрощает программу: //: C10:KissingPrincess2.cpp // Паттерн Состояние. #i nclude #incl ude using namespace std: class Creature { class State { public: virtual string responseO = 0; }: class Frog : public State { public: string responseO { return “Ribbet!”; } }: class Prince : public State { public: string responseO { return “Darling!”: } }: State* state: public: CreatureO : state(new FrogO) {} void greetО { cout « state->response() « endl; } void kissO { delete state; state = new PrinceO: } }: int mainO { Creature creature: creature. greetO; creature.kissO: creature. greetO; } ///:- Объявлять классы реализации вложенными или закрытыми не обязательно, но если это можно сделать, программа становится более стройной. Обратите внимание: любые изменения в классах State автоматически распространяются в программе; вам уже не придется редактировать все классы, чтобы эти изменения вступили в силу. Адаптер Адаптер (Adapter) получает один тип и предоставляет интерфейс к другому типу. Предположим, вы получили две библиотеки или два фрагмента кода, которые используют одинаковые концепции, но выра
Комментарии закрыты.
Последние комментарии