设计模式解密(5)- 外观模式(门面模式)

发布时间:2017-7-9 7:03:24编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"设计模式解密(5)- 外观模式(门面模式) ",主要涉及到设计模式解密(5)- 外观模式(门面模式) 方面的内容,对于设计模式解密(5)- 外观模式(门面模式) 感兴趣的同学可以参考一下。

1、简介

外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。

外观模式的目的不是为了给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单地使用子系统。

外观模式的本质是:封装交互,简化调用。

英文:Facade

类型:结构型模式

2、实例引入

背景:模仿安装智能家居前后的对比

操作灯光接口

package com.designpattern.facade;
/**
* 类说明 :灯光接口
*/
public interface LightI {
	/**
	 * 开灯
	 */
	public void on();
	/**
	 * 关灯
	 */
	public void off();
}
package com.designpattern.facade.impl;

import com.designpattern.facade.LightI;

/**
* 类说明 :灯光接口实现类
*/
public class Light implements LightI {
	@Override
	public void on() {
		System.out.println("打开灯");
	}

	@Override
	public void off() {
		System.out.println("关闭灯");
	}
}

操作电视接口

package com.designpattern.facade;
/**
* 类说明 :电视接口
*/
public interface TVI {
	/**
	 * 开机
	 */
	public void on();
	/**
	 * 关机
	 */
	public void off();
}

  

package com.designpattern.facade.impl;

import com.designpattern.facade.TVI;

/**
* 类说明 :电视接口实现类
*/
public class TV implements TVI {
	@Override
	public void on() {
		System.out.println("打开电视");
	}
	@Override
	public void off() {
		System.out.println("关闭电视");
	}
}

在安装智能家居前:

package com.designpattern.facade;

import com.designpattern.facade.impl.Light;
import com.designpattern.facade.impl.TV;

/**
* 类说明 :测试
*/
public class Test {
	public static void main(String[] args) {
		//----晚上下班回到家----
		//开灯光
		LightI light = new Light();
		light.on();
		//看电视
		TVI tv = new TV();
		tv.on();
		//-----睡觉-----
		//关灯光
		light.off();
		//关电视


上一篇:Git配合Tag的代码回滚
下一篇:java 实现输出姓和名

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款