外观模式(又称门面模式)是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
结构
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 将原有类接口转换为目标代码需求的接口。
外观模式
是多个类的集成、统一适配。
- 大小: 10.8 KB
分享到:
相关推荐
用外观模式实现下面这个抵押系统。 考虑这样一个抵押系统,当有一个客户来时,有如下几件事情需要确认: 1到银行子系统查询他是否有足够多的存款, 2到信用子系统查询他是否有良好的信用, 3到贷款子系统查询他有无...
某系统需要提供一个文件加密模块,加密流程包括三...现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块。
考虑这样一个抵押系统,当有一个客户来时,有如下几件事情需要确认:到银行子系统查询他是否有足够多的存款,到信用子系统查询他是否有良好的信用,到贷款子系统查询他有无贷款... 未采用外观模式的类结构图见附件。
java设计模式【之】外观模式【源码】【场景:积分兑换图书】 外观模式:对于复杂的类操作, 或者多个子系统互相间需要操作, 可以创建外观类对复杂的类进一步封装, 调用者只与外观类交互。 * 框架应用 * Mybatis...
java的23种常用设计模式之外观模式,经典的例子解析。
C#设计模式-外观模式
大话设计模式之外观模式 经典代码 C#类
外观模式 Facade 设计模式 还请各位大S指教。
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
设计模式--外观模式java例子
外观模式的学习总结
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为...
设计模式-外观模式(讲解及其实现代码)
设计模式外观模式PPT学习教案.pptx
装饰、外观模式实例代码
简单的外观模式源代码示例,使用c#编写的。用图形界面。很基本的描述了外观模式。
外观模式的代码(java), 详细描述了外观模式的代码架构.
该资源是学习完设计模式的适配器模式与外观模式根据书中内容所写的demo
Android外观模式实现手机内部功能的简单demo,方便理解.文章链接:http://blog.csdn.net/qq_28690547/article/details/51134427
设计模式面面观(13):外观模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/17/2299641.aspx