интерфейсного объекта, а, сле

Автор admin Пятница, 19 июня 2009 11:32

интерфейсного объекта, а, следовательно, — изменять поведение объекта при одних и тех же вызовах функций. Такой подход позволяет улучшить структуру кода в тех случаях, когда вы проверяете в каждой функции несколько условий и по результатам проверки решаете, что нужно делать в этой функции. Возьмем классический сюжет о царевне-лягушке: имеется объект (существо), которое по-разному ведет себя в зависимости от текущего состояния. Очевидно, действие можно выбрать в зависимости от состояния логического флага: //: C10:KissingPrincess.cpp #include using namespace std: class Creature { bool isFrog: public: CreatureO : isFrog(true) {} void greet0 { if(isFrog) cout « “Ribbet!” « endl: else cout « “Darling!” « endl; } void kissO { isFrog – false; } }: int mainO { Creature creature: creature.greetO; creature.kissO: creature.greetO; } ///:- Адаптер 489 Из-за необходимости проверять флаг isFrog в функции greet() и во всех остальных функциях программа становится громоздкой, особенно если позднее потребуется добавить в систему дополнительные состояния. Делегирование операций объекту с переменным состоянием


Комментарии закрыты.