外观模式(Facade)

外观模式

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

实现原理

等于说,把子系统的各个接口的方法,封装成一个方法调用,实现一个功能。

小案例

我们在外边观察计算机的开机是怎么样的?
按一下开机按钮就行了!
但是,开机过程真的这么简单吗?
真正的开机过程相当复杂。我就拿一些大多数人都知道*的过程来分析一下外观模式。

主要部分:CPU、显卡、BIOS系统、主板、内存、硬盘、Windows系统。

这些部分都有自己的类,当作子系统,然后有个“计算机外观”去吧各个子系统的方法封装成一个方法“开机”。
CPU

package 外观模式;

public class CPU {
	public void 自检() {
		System.out.println("CPU初始化");
	}
}

显卡

package 外观模式;

public class 显卡 {
	public void 自检() {
		System.out.println("显卡初始化");
	}
}

BIOS系统

package 外观模式;

public class BIOS {
	public void 加载BIOS系统() {
		System.out.println("加载BIOS系统完成");
	}
	public void 硬件检测系统() {
		System.out.println("开始自检");
	}
	public void 转移硬件操作权限() {
		System.out.println("硬件自检完成,一切正常,将硬件操作转移给windows系统");
	}
}

主板

package 外观模式;

public class 主板 {
	public void 自检() {
		System.out.println("主板自检完成,一切正常");
	}
}

内存

package 外观模式;

public class 内存 {
	public void 自检() {
		System.out.println("内存自检完成,一切正常");
	}
}

硬盘

package 外观模式;

public class 硬盘 {
	public void 自检() {
		System.out.println("硬盘自检完成,一切正常");
	}
}

Windows系统

package 外观模式;

public class Windows {
	public void 开机() {
		System.out.println("开机完成");
	}
}

计算机外观

package 外观模式;

public class 计算机外观 {
	public CPU cpu = new CPU();
	public 显卡 显卡 = new 显卡();
	public BIOS bios = new BIOS();
	public 主板 主板 = new 主板();
	public 内存 内存 = new 内存();
	public 硬盘 硬盘= new 硬盘();
	public Windows w = new Windows();
	
	public void 开机() {
		cpu.自检();
		显卡.自检();
		bios.加载BIOS系统();
		bios.硬件检测系统();
		主板.自检();
		内存.自检();
		硬盘.自检();
		bios.转移硬件操作权限();
		w.开机();
	}
}

用户

package 外观模式;

public class 用户 {
	public static void main(String[] args) {
		计算机外观 计算机外观 = new 计算机外观();
		计算机外观.开机();
	}
}

运行结果

CPU初始化
显卡初始化
加载BIOS系统完成
开始自检
主板自检完成,一切正常
内存自检完成,一切正常
硬盘自检完成,一切正常
硬件自检完成,一切正常,将硬件操作转移给windows系统
开机完成

总结

大家从这里边应该可以看到,从外边观察,和实际进行操作的差别了。

那么大家再想一下,Windows运行一个软件仅仅是双击那么简单吗?
关机是那么简单吗?

相信大家对外观模式也有一定了解了,从编程的角度上来说,我们把所有的子系统,各种细节都写了出来,但是为了方便管理和调用,也为了其他人阅读维护方便,把一些方法的组合封装成一个“功能”。这就是外观模式!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值