设计模式(六)外观模式

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

       使用场景:子系统交互复杂,建立外观模式可以屏蔽系统间的通信实现,客户端调用简单、透明。

       结构:

       外观(Facade)角色:被客户端调用,可以访问各子系统的功能。

       子系统(SubSystem)角色:实现子系统的功能,处理Facade指派的任务。

       客户端(Client)角色:调用外观角色获得相应的功能。

       优点:

       1、子系统间不必直接跟客户端进行通信交互,减少耦合。

       2、客户端通过外观角色直接跟子系统进行交互,对子系统间的通信是透明的。

       

       这里以电脑(简单分为cpu、内存、硬盘)为例子,写一个外观模式的应用。

       外观角色类

public class Computer {
	
	private Cpu cpu = null;
	private Memory memory = null;
	private HardDrive hardDrive = null;
	
	public Computer(){
		cpu = new Cpu();
		memory = new Memory();
		hardDrive = new HardDrive();
	}
	
	public void start(){
		this.cpu.execute();
		this.memory.execute();
		this.hardDrive.execute();
	}

}

       子系统类

public class Cpu {
	
	public void execute(){
		System.out.println("CPU就绪!");
	}

}

public class Memory {
	
	public void execute(){
		System.out.println("内存加载就绪!");
	}

}

public class HardDrive {
	
	public void execute(){
		System.out.println("硬盘加载就绪!");
	}

}

        客户端类

public class Client {
	
	public static void main(String[] args){
		Computer computer = new Computer();
		computer.start();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值