一、什么是外观模式
Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。
二、外观模式的结构
三、外观模式的角色和职责
Facade
为调用方定义简单的调用接口。
Clients
调用者。通过Facade接口调用提供某功能的内部类群。
Packages
功能提供者。指提供功能的类群(模块或子系统)。
package com.dw.test;
//Facade为调用方定义简单的调用接口。
public class ShouJiFacade {
private XiaomiPackages xiaomi;
private MeizuPackages meizu;
public ShouJiFacade()
{
this.xiaomi=new XiaomiPackages();
this.meizu=new MeizuPackages();
}
public void maishoujiA() {
this.xiaomi.maiXiaomi();
}
public void maishoujiB() {
this.xiaomi.maiXiaomi();
this.meizu.tejiaMeizu();
}
}
package com.dw.test;
//功能提供者。指提供功能的类群(模块或子系统)
public class XiaomiPackages {
public void maiXiaomi() {
System.out.println("卖小米手机");
}
}
package com.dw.test;
public class MeizuPackages {
public void tejiaMeizu() {
System.out.println("特价魅族");
}
}
package com.dw.test;
//Clients调用者。通过Facade接口调用提供某功能的内部类群。
public class MainClients {
public static void main(String[] args) {
ShouJiFacade sf=new ShouJiFacade();
sf.maishoujiA();
sf.maishoujiB();
}
}
分享到:
相关推荐
用外观模式实现下面这个抵押系统。 考虑这样一个抵押系统,当有一个客户来时,有如下几件事情需要确认: 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