- 浏览: 447195 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (162)
- easymock (3)
- 模板引擎 (3)
- JForum (4)
- web (9)
- spring (10)
- java (20)
- struts (9)
- uml (3)
- java pattern (19)
- JQuery (14)
- 多线程 (13)
- database (21)
- PS (3)
- ejb (6)
- 版本管理 svn , maven , ant (2)
- protocol (1)
- 测试 (1)
- ws (7)
- Apache (4)
- 脚本语言 (1)
- guice (1)
- 分布式 (4)
- 架构 (0)
- 经验 (1)
- 版本管理 svn (1)
- maven (1)
- ant (1)
- 书籍 (1)
- Linux (1)
最新评论
-
Master-Gao:
稍微明白了点,,有点萌萌哒
为什么匿名内部类参数必须为final类型 -
waw0931:
终于明白了,谢谢!
为什么匿名内部类参数必须为final类型 -
十三圆桌骑士:
提供了两个链接还是有用的。
安装Mondrian -
放方芳:
[flash=200,200][/flash]
Freemarker标签使用 -
放方芳:
[b][/b]
Freemarker标签使用
先做个总结:
外观模式就是提供一个高层接口来集成、制定、调用子系统的功能,达到客户端和子系统之间的解耦
两篇文章来解释:
一、
外观模式(又称门面模式)是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
结构
Facade
这个外观类为子系统中Packages 1、2、3提供一个共同的对外接口
Clients
客户对象通过一个外观接口读写子系统中各接口的数据资源。
Packages
客户可以通过外观接口读取的内部库。
示例
Java
这是一个抽象的示例。一个客户“you”通过外观接口“computer”获取计算机内部复杂的系统信息。
/* Complex parts */
class CPU {
public void freeze() { ... }
public void jump(long position) { ... }
public void execute() { ... }
}
class Memory {
public void load(long position, byte[] data) {
...
}
}
class HardDrive {
public byte[] read(long lba, int size) {
...
}
}
/* Façade */
class Computer {
public void startComputer() {
cpu.freeze();
memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
cpu.jump(BOOT_ADDRESS);
cpu.execute();
}
}
/* Client */
class You {
public static void main(String[] args) {
Computer facade = new Computer();
facade.startComputer();
}
}
注意和其他设计模式的区别
代理模式
1 代理模式中的原类和代理类继承同一父类;
2 原类对象与代理类对象接口相同,功能一致;
3 起到了隐藏原类的作用。
适配器模式
1 只有适配器继承目标接口;
2 将原有类接口转换为目标代码需求的接口。
外观模式
是多个类的集成、统一适配。
二、
外观模式属于结构型模式,其意图是为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。在项目设计中,把一个系统划分成为若干个子系统由利于降低系统的复杂性,一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小,达到该目标的途径之一就是引入一个外观对象,它为子系统中较一般的设施提供了一个单一而简单的界面。
发表评论
-
访问者模式 Visitor(转)
2012-06-25 14:49 1203一、引子 对于系统中一个已经完成的类层次结构,我们已 ... -
策略模式 Strategy
2012-06-21 10:30 1019策略模式(Strategy):它定义了一系列的算法,并将每一个 ... -
模板方法模式 Template Method
2012-06-21 10:21 927GOF给模板方法(Template Method)模式定义一个 ... -
状态模式 State
2012-06-19 15:37 1058State模式的定义: 不同的 ... -
备忘录模式 Memento(转)
2012-06-19 14:11 0备忘录模式(Memento) 属于对象的行为模式。 ... -
中介者模式 Mediator (转)
2012-06-19 11:11 0一、中介者模式简介 ... -
迭代器模式 iterator
2012-06-18 14:58 3303一、 引言 迭代这个名词对于熟悉Java的人来说绝对不陌 ... -
解释器模式 interpreter(转)
2012-06-18 13:48 0Interpreter模式也叫解释器模式,是由GoF提出的23 ... -
责任链模式 chain of responsibility(原)
2012-06-15 15:56 1064动机: 在开发过程中有一种情况:一个事件产生一个请求,这个请 ... -
享元模式 flyweight
2012-06-14 15:45 932个人理解:当系统内部需要使用大量的细粒度对象时,内存中每种类型 ... -
组合模式(Composite)
2012-06-13 15:33 2223The figure below shows a UML cl ... -
适配器模式(Adapter )
2012-06-13 14:46 981Adapter - Convert the interfac ... -
Bridge桥接模式
2012-06-08 15:24 800Bridge桥接模式是一种结构型模式,它主要应对的是:由于类 ... -
代理模式
2012-06-08 11:06 813代理模式:给某一对象提供代理对象,并由代理对象控制具体对象的引 ... -
设计模式(Design Pattern)的原则
2012-06-08 11:00 875设计模式(Design Pattern)的原则 1、&q ... -
原型模式 Prototype Pattern
2012-03-30 18:34 1177一. 原型模式简介 ... -
设计模式之Decorator
2012-03-30 16:44 821设计模式之Decorator(油漆工) ... -
命令模式
2011-12-09 15:35 817优点: 解耦了发送者和接受者之间联系。 发送者调用一个 ... -
观察者模式
2011-12-09 10:50 972Define a one-to-many depend ... -
抽象工厂 理解
2011-10-14 18:22 1020抽象工厂模式 抽象工厂模式(英语:Abstra ...
相关推荐
外观模式(Facade Pattern)是设计模式中的一种结构型模式,主要目的是为了解决复杂的系统接口问题,提供一个简单的统一入口,使得客户端可以更方便地使用系统。在Java中,外观模式通常用来隐藏系统的复杂性,对外只...
### 外观模式 (Facade Pattern) #### 概述 外观模式是一种重要的设计模式,属于结构型模式之一。其核心在于通过引入一个简单的接口来隐藏一个系统中存在的复杂性,从而简化了客户端对该系统的使用。该模式的主要...
外观模式(Facade)是设计模式中的一种结构型模式,它为复杂的系统或子系统提供了一个统一的入口点,简化了客户端与系统之间的交互。通过外观模式,我们可以将系统的内部复杂性隐藏起来,使得用户只需要与一个简单的...
【外观模式(Facade)详解】 外观模式是一种结构型设计模式,其主要目的是为了解决复杂的系统划分成多个子系统后,如何降低子系统间的耦合度,提高系统的可维护性和可扩展性。它通过提供一个统一的接口,使得外部...
**外观模式(Facade Pattern)**是一种结构型设计模式,它主要解决的是复杂系统或子系统对外暴露一个简单统一的接口,使得客户端无需关心内部复杂的交互细节。这种模式在实际开发中广泛应用,尤其在大型项目中,它能...
外观模式(Facade Pattern)是一种结构型设计模式,用于为复杂子系统提供一个简单的接口。它通过封装系统内部的复杂性,提供一个统一的接口,使得客户端能够更加方便地使用子系统的功能。这种模式通常用于简化代码、...
设计模式面面观(13):外观模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/17/2299641.aspx
外观模式(Facade Pattern)是设计模式中的一种结构型模式,其主要目的是为了简化客户端与复杂系统之间的交互。在C#编程中,外观模式通常用于减少客户端对子系统组件的依赖,提供一个统一的、高层次的接口,使得...
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第11节:结构型模式Facade外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个统一的接口,使得子系统更容易使用。外观模式定义了一个高层接口,使得这一子系统更加容易使用。 压缩包文件代码是一个简单的 ...
外观模式是一种结构型设计模式,它的主要目标是提供一个统一的接口,用来简化对复杂系统的访问。在Java中,当你有一个复杂的子系统,而你希望客户端代码能够以一种更简洁、更易于理解的方式来与之交互时,就可以使用...
**外观模式(Facade)**是一种结构型设计模式,它的主要目的是为了解耦复杂的系统,提供一个简单的接口,使得客户端可以更方便地使用系统的子系统。在C++编程中,外观模式的应用尤为常见,因为它能够有效地降低系统...
**外观模式(Facade Pattern)**是面向对象设计模式中的一种结构型模式,它提供了一个统一的接口,用于访问子系统中的各个部分。在C#编程中,外观模式可以帮助我们简化复杂的系统接口,使得客户端代码与复杂的内部...
外观模式是一种对象结构型模式,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更加容易使用。以下是外观模式的一些关键点: 简化接口:外观模式通过提供一个统一的接口来简化外部与子系统的通信,这样...
在C++中,外观模式(Facade Pattern)同样用于为子系统中的一组接口提供一个统一的接口,使得子系统更容易使用。压缩包文件代码是一个简单的C++实现外观模式的示例。 1、定义各个子系统的类及其接口。 2、定义外观类...
C#面向对象设计模式纵横谈\C#面向对象设计模式纵横谈\10.Facade 外观模式(结构型模式).wmv )
**外观模式(Facade)**是软件工程中一种常用的设计模式,它为复杂的系统或子系统提供了一个统一的入口点,简化了客户端与复杂系统之间的交互。这种模式将客户端与子系统的内部实现细节隔离开来,使得客户端只需要...