码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式(Facade)

时间:2015-09-01 17:08:35      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

外观模式是为了解决类与类之间的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)

技术分享

public class CPU {
	public void startup(){
		System.out.println("cpu startup!");
	}
	
	public void shutdown(){
		System.out.println("cpu shutdown!");
	}
}
public class Disk {
	public void startup(){
		System.out.println("disk startup!");
	}
	
	public void shutdown(){
		System.out.println("disk shutdown!");
	}
	
}
public class Memory {
	public void startup(){
		System.out.println("memory startup!");
	}
	
	public void shutdown(){
		System.out.println("memory shutdown!");
	}
	
}
public class Computer {
	private CPU cpu;
	private Memory memory;
	private Disk disk;
	
    public Computer(){
    	this.cpu=new CPU();
    	this.disk=new Disk();
    	this.memory=new Memory();
    }
	
    public void startup()
    {
    	System.out.println("computer startup!");
    	cpu.startup();
    	memory.startup();
    	disk.startup();
    	System.out.println("start computer finish!");
    }
    
    public void shutdown()
    {
    	System.out.println("begin to close the computer!");
    	cpu.shutdown();
    	memory.shutdown();
    	disk.shutdown();
    	System.out.println("computer close!");
    }
}
public class User {
	public static void main(String[] args) {
		Computer computer =new Computer();
		computer.startup();
		computer.shutdown();
	}
}

测试结果:

computer startup!

cpu startup!

memory startup!

disk startup!

start computer finish!

begin to close the computer!

cpu shutdown!

memory shutdown!

disk shutdown!

computer close!

如果我们没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!

外观模式(Facade)

标签:

原文地址:http://my.oschina.net/carbenson/blog/500199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!