外观模式Facade(结构型)
来源:互联网 发布:手机淘宝购物怎么省钱 编辑:程序博客网 时间:2024/05/22 06:51
参考文档:
1.设计模式书籍
2.http://blog.csdn.net/hguisu/article/details/7533759
外观模式Facade(结构型)
理论方面的可以查看这篇博客:http://blog.csdn.net/hguisu/article/details/7533759( 设计模式(九)外观模式Facade(结构型))
代码实现:(案例是上篇博客中的例子)
例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计。
Client.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class Client { public static void main(String[] args) { ConcreteFacade concreteFacade = new ConcreteFacade(); concreteFacade.on(); System.out.println("-----------------------------------------------"); concreteFacade.off(); System.out.println("-----------------------------------------------"); ConcreteFacade2 concreteFacade2 = new ConcreteFacade2(); concreteFacade2.on(); System.out.println("-----------------------------------------------"); concreteFacade2.off(); }}AbstractFacade.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public abstract class AbstractFacade { public abstract void on(); public abstract void off();}ConcreteFacade.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class ConcreteFacade extends AbstractFacade { private AirConditioner mAirConditioner; private Fan mFan; private Light mLight; public ConcreteFacade() { mAirConditioner = new AirConditioner(); mFan = new Fan(); mLight = new Light(); } @Override public void on() { mAirConditioner.on(); mFan.on(); mLight.on(); } @Override public void off() { mAirConditioner.off(); mFan.off(); mLight.off(); }}ConcreteFacade2.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class ConcreteFacade2 extends AbstractFacade { private AirConditioner mAirConditioner; private Fan mFan; private Light mLight; private Television mTelevision; public ConcreteFacade2() { mAirConditioner = new AirConditioner(); mFan = new Fan(); mLight = new Light(); mTelevision = new Television(); } @Override public void on() { mAirConditioner.on(); mFan.on(); mLight.on(); mTelevision.on(); } @Override public void off() { mAirConditioner.off(); mFan.off(); mLight.off(); mTelevision.off(); }}AirConditioner.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class AirConditioner { public void on(){ System.out.println("AirConditioner is on"); } public void off(){ System.out.println("AirConditioner is off"); }}Fan.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class Fan { public void on(){ System.out.println("Fan is on"); } public void off(){ System.out.println("Fan is off"); }}Light.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class Light { public void on(){ System.out.println("light is on"); } public void off(){ System.out.println("light is off"); }}Television.java:
package com.rick.designpattern.facade;/** * Created by MyPC on 2017/6/5. */public class Television { public void on(){ System.out.println("Television is on"); } public void off(){ System.out.println("Television is off"); }}
阅读全文
0 0
- 结构型模式-----外观模式(Facade)
- 外观模式/Facade模式(结构型)
- Facade模式(外观模式 结构型)
- 结构型模式:Facade(外观)
- 外观模式Facade(结构型)
- 外观模式Facade(结构型)
- 十、外观模式Facade(结构型)
- 外观模式Facade(结构型)
- 外观模式Facade(结构型)
- 【结构型模式】facade(外观)
- 结构型模式-外观(facade)
- 门面模式(Facade 外观模式,对象结构型模式)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- Java 调用接口
- WebViewJavascriptBridge js和原生交互 注意点
- 权限管理实现
- Android软键盘与EditText
- ubuntu下Vivado环境搭建和调试
- 外观模式Facade(结构型)
- 每周训练 题解
- Longest Palindrome
- OSM数据的获取及格式转换
- IDE系列
- tensorflow sparse-softmax-cross-entropy-with-logits nan
- HttpClient学习整理
- android glide
- 查看或修改GIT客户端用户名和邮箱地址