3.1.4 结合委托与反射的优势

反射加上有效的面向对象设计,能够使程序更加灵活。

在委托模式中,通过 改变代理 能够在运行时 改变程序行为,在普通代理模式中,可变化的 行为总数委托类总数 相等。如果没有反射,则委托的数量在 编译时 就固定下来,应用能变化的行为数量也固定下来,通过反射,委托可以在运行时确定,从而使委托数量可以 无限扩展

  • 可以在运行时加载新的 Facade 扩展应用行为,同样,新的命令、策略、状态都可以 动态加载 到应用中,以扩展应用的行为。
  • 使用动态加载、反射构造可以 泛化 工厂方法,同样,其他类似的 构造类设计模式 也能通过反射进行 泛化Builder Abstract Method 模式等)。
  • 动态加载、反射构造不是唯一的能够扩展应用行为的技术,第四章的代理(proxy)、第七、八章的反射代码生成都可以达到类似效果。

results matching ""

    No results matching ""