`
shuofenglxy
  • 浏览: 189654 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

菜鸟硕枫设计模式系列之11 外观模式

阅读更多
外观模式,一种封装底层实现的模式。使得调用者不用关心谁去具体的完成功能操作,解耦了请求者与操作者,封装了细节。外观模式也是一种结构型设计模式。

外观模式类图:
                               

具体demo:
Facade接口:
package facadePattern;

public interface Facade {
	void doA();
	void doB();
}


具体实现:
package facadePattern;

public class FacadeImpl implements Facade{

	private A a;
	private B b;
	public void setA(A a) {
		this.a = a;
	}
	
	public void setB(B b) {
		this.b = b;
	}
	
	@Override
	public void doA() {
		a.doA();
		
	}
	@Override
	public void doB() {
		b.doB();
		
	}
}


A接口:
package facadePattern;

public interface A {
	void doA();
}


A实现:
package facadePattern;

public class AImpl implements A{

	@Override
	public void doA() {
		System.out.println("hello from taobao");
		
	}

}



B接口:
package facadePattern;

public interface B {
	void doB();
}


B实现:
package facadePattern;

public class BImpl implements B{

	@Override
	public void doB() {
		System.out.println("doB,hello from taobao");
		
	}

}


测试类:
package facadePattern;

public class FacadeTest {

	public static void main(String[]args){
		A a = new AImpl();
		B b = new BImpl();
		
		FacadeImpl facade = new FacadeImpl();
		facade.setA(a);
		facade.setB(b);
		
		facade.doA();
		facade.doB();
		
	}
}

说明 :说到解耦,在我的理解上,外观模式是封装作用最明显的一个设计模式,使得调用者完全不用关心底层实现由谁去完成。


  • 大小: 13.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics