门面模式

    门面模式是一个非常常用且实用的模式。在实现的系统中,通常有多个子系统或功能模块。客户端如果直接的与这些子系统打交道,将会是耦合关系和客户端代码变得很复杂。通过在子系统前加入一个门面,对外提供一个统一的入口,将会解决这个问题。

外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。


    如图,使用模式后,客户端只与门面进行交互,多外逻辑变得简单了许多。门面模式在类、模块、系统甚至更大的级别上都可以使用,而且灵活多变,所以并没有较为统一的实现方法。
    如果直接引入一个门面类,会有一个缺陷:当后面的子系统发生变化时,门面类就要相应变化,客户端也有很大可能需要变化。不符合开闭原则。可以通过引入抽象门面解决,客户端针对抽象编程,适应变化。门面也可以通过具体实现来适应一部分的扩展。
    
    总结:
        优点:
  • 降低客户端和子系统的耦合度,使用变得容易,客户端变得简单。
        缺点:
  • 设计不当可能子系统变化就需要需改门面类,违反开闭原则。
        适用场景:
  • 为复杂的子系统提供统一简单的访问。
  • 将客户端与系统解耦。
  • 在层次化结构中,为每层建造门面,层级之间通过门面交互,降低层级之间的耦合度。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值