牛市股票还是亏钱—外观模式

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

外观模式(Facade Pattern)结构图

  Facade外观类知道哪些子系统负责处理请求,将客户的请求代理给适当的子系统对象。SubSystem Classes 子系统类集合实现子系统的功能,处理Facade对象指派的任务。注意子类中没有Facade的任何信息,即没有对Facade对象的引用。

  四个子系统的类:

class SubSystemOne{
    public void MethodOne(){
        //子系统方法一
    }
}

class SubSystemTwo(){
    public void MethodTwo(){
        //子系统方法二
    }
}

class SubSystemThree(){
    public void MethodThree(){
        //子系统方法三
    }
}

class SubSystemFour(){
    public void MethodFour(){
        //子系统方法四
    }
}

  外观类:

class Facade{
    SubSystemOne one;
    subSystemTwo two;
    subSystemThree three;
    SubSystemFour four;

    public Facade{
        one = new SubSystemOne();
        two = new SubSystemTwo();
        three = new SubSystemThree();
        four = new SubSystemFour();
    }

    public void MethodA(){
        //方法组A
        one.MethodOne();
        two.MethodTwo();
        four.MethodFour();
    }

    public void MethodB(){
        //方法组B
        two.MethodTwo();
        three.MethodTwo();
    }

}

客户端调用

public class Client {
    public static void main(String[] args) {
        Facade facade = new Facade();

        facade.MethodA();
        facade.MethodB();
    }
}

外观模式如何使用

  关于外观模式使用要分三个阶段来说:

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

时间: 2024-09-28 17:39:12

牛市股票还是亏钱—外观模式的相关文章

外观模式的介绍以及与适配器模式和装饰者模式的区别

外观模式 定义:提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用. 举例:我需要打开微信发送给某个好友某些内容,其中的过程包括了,下载微信,输入账号密码,点击登陆,找到好友,发送消息.这些整体封装成了一个对外的方法,当我调用需要这个流程的时候,我通过一个方法的调用,直接就能实现全部的流程,不需要在请求方,去组合方法去完成这个操作. 设计原则:莫忒耳原则又称最少知识原则,只和你的密友谈话,通过"举例",可以明白这个原则的定义. 原则缺点:采用这

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

原文中对外观模式的定义为:   外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子类系统更加的容易使用[DP]. 从定义理解: 1.外观模式是为子系统提供一组接口服务的,不是一个接口,是一组:既然是一组接口,就有可能需要和很多类.很多方法打交道 2.外观模式自己也要定义个高层接口,而这个接口就是为子系统中的一组接口服务的.专业说是对子系统中在接口实现类进行逻辑封装. 3.上一篇的建造者模式,强调的是将复杂对象构建与表示分离:而外观模式则侧重子系统,有可

由基金公司与股民 论外观模式(也叫门面模式)

前段时间,牛市很牛有部分股民大赚,但80%的股民还是亏损:估计有好多怕是新股民.其实主要还是对这个股市了解的太少,瞎掺合.大家都知道基金相对股市来说,比较稳定点,而只是赚得少点.为什么呢?因为这个将所有投资基金的钱积累起来由专业的基金投资团队买股票.买其他的社会投资项目:要知道他们可有对股市所需买的股票进行了深入的分析:而且将风险进行了分散.好了扯了这么多,我们引入需要探讨的设计模式---外观模式. 刚才讲的实际上就是咱们在项目开发过程的外观设计模块.咱们看看定义:为子系统中的一组接口提供一个一

三分钟理解“外观模式”——设计模式轻松掌握

实际生活中的例子: 现在流行炒股,股民一般都手持好多个股票,而股民每天需要关注手中N个股票的动向,随时针对不同的股票作出不同的决策,这样感觉心好累:于是有的人选择买基金.基金本质上还是炒股票,只不过基金机构拿了投资人的钱买了N个股票,而我们只要购买一个基金就够了,对N个股票的管理就交给基金机构去折腾了,我们瞬间感觉好轻松. 代码世界也是一样,每个股票都是一个类,每个基金都是一个类,股民就是这些类的使用者.如果股民直接操作多个股票类,那会导致股民类中的操作非常复杂,那么股民类和整个系统的藕合度也就

<八>读<<大话设计模式>>之外观模式

外观模式其实很好理解的,就是将表面的东西展示给人看,内部的东西你不知道的(因为已经封装好了),比如一个外部系统要和公司内部5个系统进行交互,而这5个系统之间也有交互,那么第一种就是外部系统和5个系统都进行交互:第二种就是做一个接口将外部系统需要的逻辑封装成一个方法,该方法中包含了关于5个系统的交互方式,这样外部系统就不用直接和5个系统交互了,直接调用接口完事.外观模式也叫门面模式,其实说白了就是把要用的东西封装起来使交互更加方便. 外观模式定义:为子系统中的一组接口提供一个一致的界面,此模式定义

外观模式(Facade)

一.外观模式介绍 面向对象的一个比较重要的法则:迪米特法则(最少知识原则):一个软件实体应当尽可能少的与其他实体发生相互作用. 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口.这个接口使得这一子系统更加容易使用.说白了,就可以理解为封装 外观模式的核心:为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用 例1:股民炒股 未使用外观模式情况 要让股民尽可能少的与股票直接打交道,给其提供一个蒙面,让股民跟蒙面打交道.这样就符合了迪米特法则,让股民尽可能少的与股票打

设计模式之结构型模式—— 2.5 外观模式

<?php /**  * 2.5 外观模式  *   定义:  *       为子系统中的一组接口提供一个一致的界  *       面,Facade模式定义了一个高层接口,这  *       个接口使得这一子系统更加容易使用.  *   角色:  *       1. 外观类  *           职责:知道哪些子系统类负责处理请  *                 求,将客户的请求代理给适当  *                 的子系统对象.  *       2. 子系统类  

《大话设计模式》ruby版代码:外观模式

需求: 股民买卖股票 初步代码: # -*- encoding: utf-8 -*- #股票1 class Stock1 def buy puts '股票1买入' end def sell puts '股票1卖出' end end #股票2 class Stock2 def buy puts '股票2买入' end def sell puts '股票2卖出' end end #股票3 class Stock3 def buy puts '股票3买入' end def sell puts '股票3

设计模式学习笔记--外观模式

好久没写设计模式的blog了,这次重新回来填坑,先找一个最简单但是却最常用的设计模式来学习,外观模式.其实说是一个设计模式,其实我们在实际的编程中无时无刻不在用外观模式,可以说这个设计模式已经渗透到编程的各个方便,可能我们自己没感觉出来罢了. 一.外观模式的定义 先来看一下外观模式的定义: 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个接口使得这一系列子系统更加容易使用. 简单解释一下,所谓外观模式,就是在我们设计系统的时候,将若干个子系统的功