外观模式

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。(摘抄)

外观模式体现了依赖倒转原则和迪米特法则,抽出来一个外观类作为客户端调用接口,当客户端调用的时候只需要知道外观类的方法和实现的效果即可,而不需要去知道具体的功能类做了那些工作,其实仔细看外观模式也会有很多前面提到过的设计模式的影子,这些影子就是设计模式的原则和法则,所以把原则弄明白了一切的设计模式都不在话下,会被我们踩在脚下的

class A
{public void methodA(){//A的操作}
}class B
{public void methodB(){//B的操作}
}class C
{public void methodC(){//C的操作}
}class D
{public void methodD(){//D的操作}
}class Facade
{A a;B b;C c;D d;public Facede() {// TODO Auto-generated constructor stuba = new A();b = new B();c = new C();d = new D();}public void method1(){a.methodA();b.methodB();}public void method2(){c.methodC();d.methodD();}
}class Client
{public static void main(){Facede facade = new Facade();facade.method1();facade.method2();}
}

简单的代码实现就在上面了,首先要弄清楚这个外观模式在什么时候调用,外观模式是一个提供给客户调用功能类的接口,他自己本身是和功能类没有任何关系的。

在平时给软件设计系统时也应该做到把层与层之间的划分做得很清晰,同时随着功能类的越来越多,提供一个简单的调用接口,可以有效的减少层与层之间的耦合。

他的好处还有当你要给客户端修改调用的功能类时直接更改外观类中的代码就行了。

同时当你需要给一个别人写的软件拓展功能的时候,例如一个小插件,但是如果这个软件很庞大,代码调用很繁杂,这时你开发一个Facade类,把需要调用的类和一些代码处理的工作交给Facade,那你开发小插件调用的时候就会很方便而且很清晰,因为Facade都已经整理好了,而且你要是要写多个小插件,但是功能又有重叠的地方,那么这个Facade的作用就更大了

《大话设计模式》—— 读后感 (12)牛市股票还会亏钱?—— 外观模式相关推荐

  1. [大话设计模式C++版] 第12章 牛市股票还会亏钱 —— 外观模式

    源码可以在这里找到 大话设计模式C++版 股民炒股代码 //main.cpp #include <iostream>using namespace std;//股票1 class Stoc ...

  2. 【设计模式】牛市股票还会亏钱 --- 外观模式

    一,概述 外观模式是软件工程中常用的一种软件设计模式.它为子系统中的一组接口提供一个统一的高层接口.使用子系统更容易使用. 二,例如 股民买股票,大部分散户自己买股票.国债.房地产,然后到时机抛售.这 ...

  3. 第十二章 牛市股票还会亏钱-外观模式(读书笔记)

    1.由于众多投资者对众多股票的联系太多,反而不利于操作,这在软件中是不是就称为耦合性过高.而有了基金以后,变成众多用户只和基金打交道,关心基金的上涨和下跌就可以了,而实际上的操作却是基金经理人在与上千 ...

  4. 《大话设计模式》之--第12章 牛市股票还会亏钱?----外观模式

    http://blog.csdn.net/monkey_d_meng/article/details/5696192 第12章 牛市股票还会亏钱?----外观模式 12.1牛市股票还会亏钱? &quo ...

  5. 大话设计模式-第12章 牛市股票还会亏钱?--外观模式

    第12章 牛市股票还会亏钱?--外观模式 12.2 股民炒股代码 //股票1 class Stock1 { //卖股票 public void Sell() { Console.WriteLine(& ...

  6. 牛市股票还会亏钱?----外观模式

    <大话设计模式>之--第12章 牛市股票还会亏钱?----外观模式 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容 ...

  7. 牛市股票还会亏钱? 外观模式

    12.1 牛市股票还会亏钱 12.2 股民炒股代码 namespace 外观模式 {class Program{static void Main(string[] args){Stock1 gu1 = ...

  8. 牛市股票还会亏钱?——外观模式。

    外观模式以及动机 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 动机:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户 ...

  9. 《大话设计模式》——读后感 (9)牛市股票还会亏钱?——外观模式

    原文中对外观模式的定义为:    外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子类系统更加的容易使用[DP]. 从定义理解: 1.外观模式是为子系统提供 ...

最新文章

  1. 一起谈.NET技术,C#中int和System.Int32理解总结
  2. 待解决--LaTex为什么其他符号可以用,插入大于等于,或者小于等于就报错?
  3. 优化我们的业务之Timecard
  4. apache php5.3 配置_php-5.3+APACHE 安装配置
  5. 一天一个设计模式之建造者模式(Builder)
  6. freerdp 解压安装_Ubuntu下编译安装运作FreeRdp连接Windows
  7. F12 界面:请求响应内容 Preview 和 Response 不一致、接口返回数据和 jsp 解析到的内容不一致
  8. php邮件html模板下载,PHP Mailer与HTML模板和发送变量
  9. 使用Java泛型和反射机制编写Excel文件生成和解析的通用工具类
  10. dex转为java_android - 将DEX反编译成Java源代码
  11. 国产工业机器人目前发展到了什么水平?
  12. 滴滴共享单车在深圳被叫停;六六接受京东道歉;宝马发布最新充电网络计划丨价值早报
  13. 最短路径--狄克斯特拉(Dijkstra)算法
  14. 『可道云』内网穿透牛刀小试,会敲键盘就能搭建的私有云网盘
  15. 中华好诗词大学季第二季(四)
  16. html评价标准展示,网页设计评分标准.doc
  17. 微信小程序调用update更新数据库数据无效
  18. Matlab中安装NURBS工具箱及使用
  19. Unknown custom element: <uni-data-checkbox> - did you register the component correctly? For recursi
  20. ETH2.0 要来了,要不要参与质押?

热门文章

  1. MYSQL ifnull 函数 、if判断 、case when、 locate函数
  2. DialogBox使用例子
  3. 《游戏学习》java代码实现《愤怒的小鸟》实战源码
  4. 新版个人所得税计算python_个税起征点上调至5000,用Python算一算少交多少税
  5. 北航2020计算机学院招生,北航网络空间安全学院接收2020推免研究生复试成绩公示及相关说明...
  6. IDempiere 富文本编辑器优化
  7. HotSpot VM垃圾收集器——Serial Parallel CMS G1垃圾收集器的JVM参数、使用说明、GC分析
  8. CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!
  9. 服务器系统壁纸,云服务器壁纸
  10. Java架构师教你如何突破瓶颈,下载量瞬秒百万