facade 外观模式

原创 2013年12月03日 11:22:04

我们来看看李京东的文章是如何写的。原文地址:http://terrylee.cnblogs.com/archive/2006/03/17/352349.html

概述

   在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的 Façade 模式。


意图

   为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 [GOF 《设计模式》 ]

示意图

   门面模式没有一个一般化的类图描述,下面是一个示意性的对象图:


 

生活中的例子

  外观模式为子系统中的接口定义了一个统一的更高层次的界面,以便于使用。当消费者按照目录采购时,则体现了一个外观模式。消费者拨打一个号码与客服代表联系,客服代表则扮演了这个 " 外观 " ,他包含了与订货部、收银部和送货部的接口。

 

acade 模式解说

 

    我们平时的开发中其实已经不知不觉的在用 Façade 模式,现在来考虑这样一个抵押系统,当有一个客户来时,有如下几件事情需要确认:到银行子系统查询他是否有足够多的存款,到信用子系统查询他是否有良好的信用,到贷款子系统查询他有无贷款劣迹。只有这三个子系统都通过时才可进行抵押。我们先不考虑 Façade 模式,那么客户程序就要直接访问这些子系统,分别进行判断。类结构图下:



 可以看到,在不用Façade 模式的情况下,客户程序与三个子系统都发生了耦合,这种耦合使得客户程序依赖于子系统,当子系统变化时,客户程序也将面临很多变化的挑战。一个合情合理的设计就是为这些子系统创建一个统一的接口,这个接口简化了客户程序的判断操作。看一下引入 Façade 模式后的类结构图:


 

 

  • 650280ca-4fce-3909-b966-c5c7445072e0-thumb.jpg
  • 大小: 17.4 KB
  • 4b861f72-9ae3-34b0-b59f-e1a7b3b22ed8-thumb.jpg
  • 大小: 10.6 KB
  • 0ff36383-e84e-3389-a6ba-76bd88822c51-thumb.jpg
  • 大小: 11.6 KB
  • 8a779639-8d7b-327e-bbe9-0dd431ffc202-thumb.jpg
  • 大小: 15.4 KB

浅谈JAVA设计模式之——外观模式(Facade)

一、概述 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、适用性 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断...
  • l1028386804
  • l1028386804
  • 2015年05月07日 23:32
  • 3195

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

一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使用时代码较为复杂。外观模式通过引入一个新的外观类(Facade)来实现该功能,外观类为多个业务类的调用提供统...
  • yanbober
  • yanbober
  • 2015年05月04日 09:29
  • 2410

结合laravel Facade看外观模式怎么用?

在laravel中,我们经常通过facade来实现全局调用某个方法而不需要实例化一个对象,今天就来扒一扒它是怎样做到的。所有的Facade都是继承自同一个抽象父类Illuminate\Support\...
  • Many7Hong7
  • Many7Hong7
  • 2016年10月02日 21:00
  • 1857

Ajax中使用Facade外观模式的Eclipse版本的Demo

  • 2008年06月03日 18:43
  • 502KB
  • 下载

设计模式之外观模式 facade

  • 2012年06月13日 17:41
  • 10KB
  • 下载

Facade 外观模式(结构型模式)

  • 2011年11月02日 19:54
  • 8.03MB
  • 下载

设计模式之外观模式(Facade Pattern)

  • 2012年03月06日 17:53
  • 68KB
  • 下载

C#面向对象设计模式纵横谈\11 结构型模式Facade外观模式.zip

  • 2009年12月20日 12:56
  • 7.52MB
  • 下载

C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) (Level 300)

  • 2008年09月13日 15:59
  • 6.06MB
  • 下载

Facade(外观)模式

外观模式是类结构型设计模式之一,描述的是一组具有类似功能的类群。 案例:输入系统中有多个输入子系统:键盘、触摸屏、鼠标等,它们都要为上层应用程序提供x、y坐标。   若用户代码直接操作这些...
  • qq_29344757
  • qq_29344757
  • 2018年01月16日 12:42
  • 13
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:facade 外观模式
举报原因:
原因补充:

(最多只允许输入30个字)