Facade模式

public class Facade {
	
	public static void main(String[] args) {
		
		Computer com = new Computer();
		com.startup();
		com.shutdown();
	}
}
class Computer {
	private CPU cpu;
	private Memory memory;
	private Disk disk;

	public Computer(){
		cpu = new CPU();
		memory = new Memory();
		disk = new Disk();
	}
	public void startup(){
		System.out.println("start the computer!");
		cpu.startup();
		memory.startup();
		disk.startup();
		System.out.println("start computer finished!");
	}

	public void shutdown(){
		System.out.println("begin to close the computer!");
		disk.shutdown();
		memory.shutdown();
		cpu.shutdown();
		System.out.println("computer closed!");
	}
}
class CPU {
	public void startup(){
		System.out.println("cpu startup!");
	}
	public void shutdown(){
	System.out.println("cpu shutdown!");
	}
}
class Memory {
	public void startup(){
		System.out.println("memory startup!");
	}

	public void shutdown(){
		System.out.println("memory shutdown!");
	}
}
class Disk {
	public void startup(){
		System.out.println("disk startup!");
	}
	public void shutdown(){
		System.out.println("disk shutdown!");
	}
}

 输出为:

start the computer!
cpu startup!
memory startup!
disk startup!
start computer finished!
begin to close the computer!
disk shutdown!
memory shutdown!
cpu shutdown!
computer closed!

 * 为一个复杂子系统提供一个简单接口时,由于子系统往往因为不断演化而变得越来越复杂,但这种变化

   不应该影响到客户的调用,此时使用 Facade 模式对外提供一个访问的接口。


 * Facade模式注重简化接口,Adapter模式注重转换接口,Bridge模式注重分离接口(抽象)与其实现,

    Decorator模式注重稳定接口的前提下为对象扩展功能。

猜你喜欢

转载自jaesonchen.iteye.com/blog/2286892