设计模式之门面(外观)模式(Facade)

本文深入探讨了外观模式的概念,通过实例展示了如何利用外观模式隐藏复杂组件的内部实现,以提供简单易用的接口。以电脑开机为例,解释了外观模式如何在用户层面简化操作流程,使得用户只需按一个按钮即可完成一系列内部组件的启动过程。

外观模式的主要解决的问题是:隐藏具体的内部实现,给外界的调用提供一个统一简单的接口,降低程序调用上面的耦合。比如我们驾驶一辆汽车,我们不需要考虑发动机的齿轮是怎么运转的,刹车片是怎么来刹车的。我们只需要有几个踏板,一个方向盘,几个按钮就可以驾驶一辆汽车了。

这里我实现的是一个电脑开机的过程,同样电脑开机的具体操作已经被电脑封装起来了,我们只需要按一个按钮,就可以开机了。幕后的CPU,硬盘,显示器的一系列启动都被隐藏起来。

CPU类:

 

public class CPU {
	public void work() {
		System.out.println("CPU is working...");
	}
}


硬盘类:

public class Disk {
	public void work(){
		System.out.println("Disk is working...");
	}
}


显示器类:

 

 

public class Screen {
	public void work() {
		System.out.println("Screen is working...");
	}
}


电脑类:(Facade)

 

 

public class Computer {
	public void startUp() {
		new CPU().work();
		new Disk().work();
		new Screen().work();
	}
}


测试类:

 

 

public class Main {
	public static void main(String[] args) {
		new Computer().startUp();
		
	}
}

运行结果:

 

 

CPU is working...
Disk is working...
Screen is working...

 

其中电脑类就是一个Facade,代替用户和CPU,硬盘,显示器等打交道,隐藏了内部的细节实现,用户甚至不需要知道CPU,硬盘,显示器的存在。

项目源码链接:http://www.kuaipan.cn/file/id_132802506211221447.htm?source=1

 

 

转载于:https://www.cnblogs.com/vokie/p/3602076.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值