design pattern——外观模式

针对问题:在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。 那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?

 

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

 

 

 

 

外观模式结构图:

 


 

 

 

 

 

 

外观模式实现代码:

 

/**
 * 实例A
 * @author bruce
 *
 */
public class A {

	public void methodA(){
		System.out.println("A doing something");
	}
}




/**
 * 实例B
 * @author bruce
 *
 */
public class B {
	
	public void methodB(){
		System.out.println("B doing something");
	}

}



/**
 * 实例C
 * @author bruce
 *
 */
public class C {
	
	public void methodC(){
		System.out.println("C doing something");
	}

}



/**
 * 外观实例
 * @author bruce
 *
 */
public class Facade {
	
	private A a;
	private B b;
	private C c;
	
	public Facade(A a,B b,C c){
		this.a=a;
		this.b=b;
		this.c=c;
	}
	
	/**
	 * 外观接口
	 */
	public void action(){
		a.methodA();
		b.methodB();
		c.methodC();
                //.......
	}

}





/**
 * 测试
 * @author bruce
 *
 */
public class Client {
	
	public static void main(String[] args) {
		A a=new A();
		B b=new B();
		C c=new C();
		
		Facade facade=new Facade(a,b,c);
		
		facade.action();
		
		/**
		 * output:
		   A doing something
		   B doing something
		   C doing something
		 */
	}

}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值