12 façade外观模式(结构/架构)

12 façade(结构/架构)

    • 动机:
      • 将系统构造为子系统有助于降低复杂性。
      • 一个常见的设计目标是最小化子系统之间的通信和依赖关系。
      • 实现这一目标的一种方法是引入一个facade对象,该对象为子系统提供一个单一的、简化的接口。
    • 什么时候用:
      • 您希望为复杂的子系统提供一个简单的接口。
      • 客户端和抽象的实现类之间有许多依赖关系。

引入facade来将子系统与客户端和其他子系统分离开来,从而促进子系统的独立性和可移植性。

    • 你想要分层你的子系统。使用facade来定义每个子系统级别的入口点。
    • 结果:
      • 它保护客户端不受子系统组件的影响。
      • 它促进子系统和它的客户端之间的弱耦合。
      • 它并不阻止应用程序在需要的时候使用子系统类。
    • 设计原则:
      • 最小知识原则
    • 实现问题:
      • 不要向facade引入新的行为
        • 如果这些行为是由子系统实现的,那么扩展facade。
        • 如果这些行为还没有被子系统实现,那么扩展子系统和外观。
      • 减少客户与子系统之间的耦合
        • 使Facade成为具有具体子类的抽象类,用于实现不同的子系统。这种抽象耦合使客户机无法知道使用了哪个子系统的实现。
    • 总结:
      • 从客户角度来看,Facade模式不仅简化了整个组件系统的接口,同时对于内部组件与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果,子系统内部任何变化不会影响到Facade接口的变化。
      • Facade模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade更多是一种架构设计模式。
      • Facade对应的组件应该是“相互耦合关系比较大”的一系列组件,而不是一个简单功能的集合。
      • Facade注重简化接口;Adapter注重转换接口;Decorater注重稳定接口的前提下为对象扩展功能。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值