Java 设计模式:外观模式Facade

Facade 外观模式

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

  借用《大话设计模式》中的例子:市场上有N多只股票,当股民想要买股票时为了最大化自己的收益需要考察市面上很多种类的股票,然后根据自己的判断选取几只股票组合购买(这种场景下每一只股票都是可以单独购买的,用户需要考察、选取一组股票来一起购买)。而有的用户直接购买基金,基金的作用是帮用户选取几只股票来组合购买,用户不用自己去选取多只股票。

  在这个场景下:单独的购买某一只股票是一个原子操作,基金相当于提供给用户的一个接口,接口里封装了多个某买股票的原子操作这就是外观模式

时间: 2024-10-16 00:21:30

Java 设计模式:外观模式Facade的相关文章

设计模式 - 外观模式(facade pattern) 详解

外观模式(facade pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy 外观模式(facade pattern): 提供了一个统一的接口, 用来访问子系统中的一群接口. 外观定义了一个高层接口, 让子系统更容易使用. 外观模式包含三个部分: 1. 子系统: 子类, 单个复杂子类 或 多个子类; 2. 外观(facade)类: 把子系统设计的更加容易使用; 3. 客户: 只需要调用外观类. 与适配器模式(adapter pattern)的

java设计模式--外观模式(Facade)

外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例) 我们先看下实现类: [java] view plain copy public class CPU { public void startup(){ System.out.println("cpu startup!"); } public v

设计模式 --外观模式(Facade)

什么是外观模式? 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用. 简单点说:外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便. 概述: 在真实的应用系统中,一个子系统可能由很多类组成.子系统的客户为了它们的需要,需要和子系统中的一些类进行交互.客户和子系统的类进行直接的交互会导致客户端对

[设计模式] 外观模式facade

外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构.DP一书的定义:为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析.语法分析.中间代码生成.机器码生成.学过编译都知道,每一步都很复杂.对于编译器这个系统,就可以使用外观模式.可以定义

java设计模式----外观模式

外观模式主要应用场景在于为复杂的子系统提供一个简单的接口,提高子系统的独立性. 创建DrawerOne类: package facade; public class DrawerOne { public void open() { System.out.println("第一个抽屉被打开了"); getKey(); } public void getKey() { System.out.println("得到第一个抽屉的钥匙"); } } 创建DrawerTwo类:

设计模式--外观模式Facade(结构型)

一.外观模式 外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观模式定义了一个高层接口,让子系统更容易被使用. 二.UML图 三.例子 举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析.语法分析.中间代码生成.机器码生成.学过编译都知道,每一步都很复杂.对于编译器这个系统,就可以使用外观模式.可以定义一个高层接口,比如名为Compiler的类,里面有一个名为Run的函数.客户只需调用这个函数就可以编译程序,至于Run函数内部的具体操作,客户无需知道. class Scan

菜鸟版JAVA设计模式—外观模式

外观模式是一种比较容易理解的模式,作用很简单,就是解耦合. 结构也是非常简单,一个外观类,这个外观类持有很多的业务类. 再由客户类去调用这个外观类去实现一些列的业务操作... 这个模式在我们的工作中非常常见,一般来说,我们的项目都是分成了Action(conlller)层,service层,dao层.. dao层负责与数据库交互,service层负责调用dao层的数据库操作,一般来说一张表对应一个dao,在一个serice层代码中,可以不止有单独的对某一张表,所以可能调用多个dao进行业务操纵,

【转】设计模式(九)外观模式Facade(结构型)

设计模式--外观模式Facade(结构型): 1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性.例子1:一个电源总开关可以控制四盏灯.一个风扇.一台空调和一台电视机的启动和关闭.该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计. 2. 问题 为了降低复杂性,常常将系统划分为若干个子系统.但是如何做到各个系统之间的通信和相互依赖关系达到最小呢? 3. 解决方案 外观模

研磨设计模式解析及python代码实现——(二)外观模式(Facade)

一.外观模式定义 为子系统中的一组接口提供一个一致的界面,使得此子系统更加容易使用. 二.书中python代码实现 1 class AModuleApi: 2 def testA(self): 3 pass 4 class AModuleImpl(AModuleApi): 5 def testA(self): 6 print "Now Call testA in AModule!" 7 class BModuleApi: 8 def testB(self): 9 pass 10 cla

设计模式之外观模式(Facade)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以