** 设计模式之Objectifier **
** 设计模式之 Objectifier **
** 意图 **
使对象从其它对象中独立出来,在不影响其它对象得情况下,可以很容易的修改此对象的行为和属性。
** 解决步骤 **
** **
1、 创建一个抽象类为特定的可变的行为和属性定义一个通用接口(抽象方法)。
2、 创建从抽象类继承下来的具体的类来实现特定的行为和属性。
3、 在客户端程序定义一个到抽象对象的引用,在程序在运行时把具体的类( ConcreteObjectA, 或 ConcreteObjectB )赋给此引用。
4、 把 client 对特定的行为和属性的调用通过 client 对象的引用( AbstractObject )委托给 ** ConcreteObject ** 对象。
** 结论 **
l 很好的封装对象的行为
l 高度的可配制和个性化设计
l 因为有间接对象引用增加开销
** 相关模式 **
Strategy 和 State ** **