java设计模式_外观模式
2016-07-30 19:19
405 查看
一、什么是外观模式
Facade模式也叫外观模式,是由GoF提出的 23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提 供一个一致的简单的界面。这个一致的简单的界 面被称作facade。
二、外观模式的结构
三、外观模式的角色和职责
Facade 为调用方定义简单的调用接口。 Clients 调用者。通过Facade接口调用提供某功能的内部类群。Packages 功能提供者。指提供功能的类群(模块或子系统)。
//示例1: /* * A子系统 */ public class SystemA { /* * A子系统实现功能 */ public void doSomething() { System.out.println("实现A子系统功能"); } } /* * B子系统 */ public class SystemB { /* * B子系统实现功能 */ public void doSomething() { System.out.println("实现B子系统功能"); } } /* * C子系统 */ public class SystemC { /* * C子系统实现功能 */ public void doSomething() { System.out.println("实现C子系统功能"); } } public class MainClass { public static void main(String[] args) { //实现A子系统功能 SystemA systemA = new SystemA(); systemA.doSomething(); SystemB systemB = new SystemB(); systemB.doSomething(); SystemC systemC = new SystemC(); systemC.doSomething(); } } //实现A子系统功能 //实现B子系统功能 //实现B子系统功能 //示例2: /* * A子系统 */ public class SystemA { /* * A子系统实现功能 */ public void doSomething() { System.out.println("实现A子系统功能"); } } /* * B子系统 */ public class SystemB { /* * B子系统实现功能 */ public void doSomething() { System.out.println("实现B子系统功能"); } } /* * C子系统 */ public class SystemC { /* * C子系统实现功能 */ public void doSomething() { System.out.println("实现C子系统功能"); } } public class Facade { private SystemA systemA; private SystemB systemB; private SystemC systemC; public Facade() { systemA = new SystemA(); systemB = new SystemB(); systemC = new SystemC(); } public void doSomething() { systemA.doSomething(); systemB.doSomething(); systemC.doSomething(); } } public class MainClass { public static void main(String[] args) { Facade facade = new Facade(); facade.doSomething(); } } //实现A子系统功能 //实现B子系统功能 //实现C子系统功能 //示例2: public class GuPiao { public void buy() { System.out.println("买股票"); } } public class QiHuo { public void buy() { System.out.println("买期货"); } } public class GuoZhai { public void buy() { System.out.println("买国债"); } } public class JiJin { //基金 private GuPiao guPiao; private QiHuo qiHuo; private GuoZhai guoZhai; public JiJin() { guPiao = new GuPiao(); qiHuo = new QiHuo(); guoZhai = new GuoZhai(); } public void buyJiJin() { guPiao.buy(); qiHuo.buy(); guoZhai.buy(); } } public class MainClass { public static void main(String[] args) { //80年代,基金出现之前 GuPiao guPiao = new GuPiao(); guPiao.buy(); QiHuo qiHuo = new QiHuo(); qiHuo.buy(); GuoZhai guoZhai = new GuoZhai(); guoZhai.buy(); JiJin jiJin = new JiJin(); jiJin.buyJiJin(); } } //买股票 //买期货 //买国债 //买股票 //买期货 //买国债
相关文章推荐
- Java设计模式(5) -- 外观
- java软件体系结构设计模式----外观
- JAVA设计模式(22) —外观(Facade)模式
- 【Java设计模式】之外观模式
- JAVA设计模式十八:--Facade(外观模式或门面模式)
- Java设计模式之外观模式
- java设计模式-外观模式(Facade)
- Java设计模式 结构模式-外观模式(Facade)
- JAVA设计模式之外观模式
- Java设计模式---外观模式
- Java设计模式(五)Facade(外观),Composite(组合),Decorator(油漆工)
- java 设计模式学习笔记七 facade外观模式
- JAVA设计模式十九--Facade(外观模式)
- Java设计模式之适配器模式和外观模式
- Java设计模式之外观模式研究
- Java设计模式之外观模式
- java设计模式之外观模式Facade
- JAVA设计模式——外观模式
- Java设计模式---外观模式
- Java设计模式十七:外观模式(Facade)