JAVA 23种设计模式之结构型模式—外观模式(9)

外观模式:外观模式是一种比较好理解的模式,他无需做太多的事情,他的作用就是尽最大可能的实现子系统与客户之间的松耦合关系

外观模式的例子很多

比如我们的dao层,我们需要那一个模块就去调用那一个模块,而不是每次都全部调用


这里我有一个简单的例子,有三个子系统提供给客户调用,由客户自行决定调用那一个子系统或调用全部的子系统

public class sysA {
	public void pr(){
		System.out.println("这里是系统功能A模块");
	}

}

public class sysB {
	public void pr(){
		System.out.println("这里是系统功能B模块");
	}

}
public class sysC {
	public void pr(){
		System.out.println("这里是系统功能C模块");
	}

}
子系统模块

/*
 * 实现子系统功能
 */
public class Subsys {
	private sysA sysa = new sysA();
	private sysB sysb = new sysB();
	private sysC sysc = new sysC();
	
	public void callsysA(){
		System.out.println("调用子系统A");
		sysa.pr();
	}
	
	public void callsysB(){
		System.out.println("调用子系统B");
		sysb.pr();
	}
	
	public void callsysC(){
		System.out.println("调用子系统C");
		sysc.pr();
	}
	
	public void AllCallsys(){
		System.out.println("调用全部子系统");
		sysa.pr();
		sysb.pr();
		sysc.pr();
	}
}
客户端

public class demo {

	public static void main(String[] args) {
		Subsys subsys = new Subsys();
		System.out.println("调用子系统A");
		subsys.callsysA();
		System.out.println("~~~~~~~~~~~~~~~~~");
		System.out.println("调用全部系统");
		subsys.AllCallsys();

	}

}

通过以上的代码,我们不能看出:

1、外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。

2、外观模式实现了子系统与客户之间的松耦合关系。 

3、外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限制客户使用子系统类。因此可以再系统易用性与通用性之间选择。

4、外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。



爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img