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

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


代码结构图如下:

//股票1

public class Stock1 {
//卖股票
public void Sell() {System.out.println("股票1卖出。");
}//买股票
public void Buy() {System.out.println("股票1买入。");
}
}

//股票2

public class Stock2 {
//卖股票
public void Sell() {System.out.println("股票2卖出。");
}//买股票
public void Buy() {System.out.println("股票2买入。");
}
}

//股票3

public class Stock3 {
//卖股票
public void Sell() {System.out.println("股票3卖出。");
}//买股票
public void Buy() {System.out.println("股票3买入。");
}
}

//国债1

public class NationlDebt1 {
//卖国债
public void Sell() {System.out.println("国债1卖出。");
}//买国债
public void Buy() {System.out.println("国债1买入。");
}
}

//国债2

public class NationlDebt2 {
//卖国债
public void Sell() {System.out.println("国债2卖出。");
}//买国债
public void Buy() {System.out.println("国债2买入。");
}
}

//房地产1

public class Reaity1 {
//卖房地产
public void Sell() {System.out.println("房地产1卖出。");
}//买房地产
public void Buy() {System.out.println("房地产1买入。");
}
}

//基金类

public class Fund {
Stock1 gu1;
Stock2 gu2;
Stock3 gu3;
NationlDebt1 nd1;
Reaity1 rt1;public Fund() {gu1 = new Stock1();gu2 = new Stock2();gu3 = new Stock3();nd1 = new NationlDebt1();rt1 = new Reaity1();
}public void BuyFund() {gu1.Buy();gu2.Buy();gu3.Buy();nd1.Buy();rt1.Buy();
}public void SellFund() {gu1.Sell();gu2.Sell();gu3.Sell();nd1.Sell();rt1.Sell();
}
}

//Main类

public class Main {
public static void main(String[] args) {Fund jijin = new Fund();//基金购买jijin.BuyFund();//基金赎回jijin.SellFund();
}
}

外观模式完美地体现了依赖倒转原则和迪米特法则的思想,所以是非常常用的模式之一。那它在使用方面的阶段:
首先,在设计初期阶段,应该要有意识将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合度大大降低。
其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。
第三,在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必须要依赖于它。此时,用外观模式Facade也是非常合适的。为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的简单接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。

牛市股票还会亏钱?----外观模式相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    应用条件:1.在设计初期,应该有意识的将不同的的两个层分离, 2.在设计阶段,增加Facade可以提供一个简单的接口,减少他们之间的依赖. 3.维护一个遗留的大系统的时,可能这个系统已经非常难以维护和 ...

最新文章

  1. 移动IM开发指南3:如何优化登录模块
  2. 应用市场自然量预估_VIVO市场ASO实战详解
  3. 解决Teamviewer连接出现的黑屏问题
  4. 完美解决Ubuntu16.04虚拟机窗口自适应问题
  5. 云厂商靠不靠谱?“国家级标准”鉴定结果来啦
  6. 批量删除HTML链接软件,3种方法教你一次性删除word文档中的所有超链接
  7. try_module_get和module_put【转】
  8. $mona$要成为高端玩家
  9. 完成端口与高性能服务器程序开发
  10. cubemx spi 中断_STM32 SPI在使用中断时丢弃数据
  11. 用python画一只皮卡丘_用python画一只可爱的皮卡丘实例
  12. linux windows市场占有率,Windows 10市场份额罕见倒退:Win7也跌了 Linux暴增111%
  13. Mac Python第三方库安装
  14. python中的哈希表数据结构
  15. 使用LL库开发STM32:UART基础使用
  16. 基于图书管理系统的需求分析之威胁建模
  17. 一个3D城市地图应用开发工具,等你获取 ThingJS 3D 全景 可视化
  18. 如何写一个C语言头文件,C语言头文件如何写?.doc
  19. 为什么要用以太网IO模块替代RS485远程IO模块
  20. 零距离接触阿里云时序时空数据库TSDB

热门文章

  1. CORDIC算法原理详解及其Verilog实现
  2. 基于单片机的数控直流电流源设计
  3. Hadoop服务启动出现Permission denied (publickey,password).
  4. 最聪明的一款奔驰,试驾奔驰最新入门A-Class
  5. android高级UI之Paint Xfermode
  6. Vue 源码解读(11)—— render helper
  7. 你怀疑过“温水煮青蛙”的故事吗
  8. metatrade4索罗斯都要用到的外汇交易术
  9. 2021年深圳考点临床医师计算机考试准考证
  10. 计算机毕业设计Java星星电影购票网站(源码+系统+mysql数据库+lw文档)