zoukankan      html  css  js  c++  java
  • C#设计模式之8:外观模式

    外观模式

    外观模式和适配器模式一样,都实现了接口改变,适配器模式是让一个接口转化成另外一个接口,而外观模式是让接口变得更简单。

    先来看一下需求:

    外观模式没有封装子系统的类,外观只是提供一个统一的接口,对子系统的类进行调度。如果有必要,还是可以直接操作子系统的类,而不是通过外观。外观让子系统的类使用起来更方便。我们也可以根据需要为子系统创建多个外观。

    外观不只是简化了接口,也将客户从组件的子系统中解耦。外观和适配器可以包装许多类,但是外观的意图是简化接口,而适配器的意图是将接口转化成不同的接口。

    适配器模式是“改变”接口符合客户期望,而外观模式是给子系统提供一个简化的接口。

    外观模式的定义:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层的接口,让子系统更容易使用。

     代码就不放了,非常简单,就是建立一个类,类中的各个方法封装了对子系统的使用逻辑。

    此外,这个设计模式引出了一个面向对象的设计原则:最少知识原则——最少知识原则的定义是只和你的密友交谈。这个原则希望我们在系统的设计中不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,它需要花许多成本维护,也会因为太负责而不容易被他人了解。

    这个原则指导我们如何避免赢得太多对象和影响太多对象——一般来说,就任何对象而言,我们只应该调用属于以下范围的方法:

    ①该对象本身

    ②被当作方法的参数而传递进来的任何对象

    ③此方法所创建或实例化的任何对象

    ④对象的任何组件

     

    在OO中,只有一个朋友是一件好事情!有多个朋友意味着有多个依赖,各种依赖错综复杂,就会导致“牵一发而动全身”。

  • 相关阅读:
    IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
    SQL Server重新利用数据表的空间
    IE8“开发人员工具”使用详解上
    eclipse启动时提示"Failed to load the jni shared library"
    Python学习中遇到的问题(更新中...)
    “ORA12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”问题的解决
    UVa 10881 Piotr's Ants
    (转)设计模式 经典书籍必备推荐
    eclipse的配置
    用python计算文件夹大小
  • 原文地址:https://www.cnblogs.com/pangjianxin/p/8745156.html
Copyright © 2011-2022 走看看