Тем не менее, механизм наслед

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

Тем не менее, механизм наследования фиксирует эти изменения на стадии компиляции. Следуя принципу «композиция предпочтительнее наследования», можно воспользоваться композицией для отделения изменяющегося кода от постоянного; так мы приходим к идее паттерна Стратегия (Strategy). Очевидным преимуществом такого подхода является возможность под- Стратегия 493 ключения переменного кода во время выполнения. Наряду со Стратегией добавляется паттерн Контекст (Context), то есть суррогатный класс, управляющий выбором и использованием конкретного объекта стратегии — совсем как Состояние! Термин «стратегия» означает лишь то, что у проблемы имеется несколько решений. Допустим, вы забыли, как зовут встреченного вами знакомого. Из неловкого положения можно выйти несколькими способами: //: СЮ:Strategy.срр // Паттерн Стратегия, linclude using namespace std: class NameStrategy { public: virtual void greet О = 0: }: class SayHi : public NameStrategy { public: void greet О { cout « “Hi! How’s it going?” « endl: } }: class Ignore : public NameStrategy { public: void greetO { cout « “(Pretend I don’t see you)” «


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