外观模式的简单使用

       外观模式是什么?为什么要使用外观模式?使用外观模式有什么优点?外观模式有什么特点?本篇博客就外观模式的原理以及近期的使用心得做个总结。

         通俗的讲,外观模式就是给系统的一组接口提供一个统一的界面,它定义了一个接口,这个接口使得这个子系统更加easy使用。

         为什么使用外观模式?那我近期的样例来讨论一下。来个包图说明一下系统层次结构。


    能够清楚的看到。在U层和B层之间加了一个外观层,假设不加这层。会发生什么情况呢?我简单的画了个用例图来说明两层之间的调用关系。


      

    由图片能够看出来,角色和用例之间关系过于复杂,假设须要改动一个用例,那么两个角色都须要改动,这在程序设计中是不予许的。怎么避免这样的情况呢?这就是文章须要讨论的内容了--外观模式。

        试想,假设我们在角色和用例之间增加某个东西,专门用来处理他们之间的复杂关系。然后角色和用例之间仅仅有简单的关联关系。不就攻克了这个问题吗。

看接下来的用例图。

     

    

    实际类图不是这种,为了便于理解,类图简化成了用例图,此图没有实际意义,仅供參考。

       可见,加了外观层以后,角色和用例之间没有直接联系。它们之间的耦合度减少了,系统维护都是在外观层进行。可维护性也提高了。

         以下是外观层的类图结构:

    

     

        由类图可知。外观层就是对子系统的方法的封装,它把每一个过程须要使用的全部子系统的方法封装成了一个方法,然后由client调用。现实生活中有没有类似的样例呢?有!

学校的一卡通事实上就是一个外观模式的应用。我们每一个学生每天须要去食堂买饭。去超市买东西,去澡堂洗澡。那么学生和学校的消费中心事实上就是多对多的关系,如今有了一卡通,它将我们全部的交易过程封装到了一起。我们仅仅须要使用一张卡就可以在不同的地方消费。结构图例如以下:

    

     一卡通的使用。为我们的生活带来了便利。

如今假如学校不使用人民币了,使用美元来交易,那么我们不必亲自去银行换取美元使用,仅仅须要更改一卡通就可以。真是方便。可见,外观模式的使用,极大的减少了消费者和生产者之间的耦合度。

    外观模式的适用范围:软件设计初期阶段,应该要有意识的将不同的两个层分离开。不同的层之间就能够建立外观层,能够使得层之间的耦合度大大降低,添加系统的可维护性。在开发阶段,假设子系统越来越复杂。我们能够使用外观来提供一个简单的接口。降低他们之间的依赖。在维护阶段,我们能够开发一个外观层接口,我们仅仅须要使用外观层接口与新系统交互就可以,能够降低非常多不必要的麻烦。

    总结:外观模式向外界提供了一个统一的接口,这一接口使得子系统更加easy使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值