外观模式:外观模式是一种比较好理解的模式,他无需做太多的事情,他的作用就是尽最大可能的实现子系统与客户之间的松耦合关系
外观模式的例子很多
比如我们的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();
}
}
客户端
通过以上的代码,我们不能看出:
1、外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。
2、外观模式实现了子系统与客户之间的松耦合关系。
3、外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限制客户使用子系统类。因此可以再系统易用性与通用性之间选择。
4、外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。
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();
}
}
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情