外观模式
为什么需要外观模式?
一个类A需要使用多个复杂的类,且类A也有多个实例,此时则可以生成一个类B,在类B中使用多个类,类A调用类B来调用多个类
什么是外观模式?
为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
外观模式的抽象实现
逻辑说明:首先是多个系统类SystemClass1,SystemClass2…,外观类中需要使用多个系统类的方法,因此外观类成员有多个系统类,在客户端类中调用外观类的方法,等效于直接在客户端类中调用多个系统类
UML图
多个系统类
public class SystemClass1 {
public void method1(){
System.out.println("class1.method1");
}
}
public class SystemClass2 {
public void method2(){
System.out.println("class2.method2");
}
}
外观类
public class Facade {
private SystemClass1 class1;
private SystemClass2 class2;
public Facade(){
class1 = new SystemClass1();
class2 = new SystemClass2();
}
public void methodA(){
class1.method1();
}
public void methodB(){
class2.method2();
class1.method1();
}
}
客户端类
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}
生活实例:股民们可以通过买基金,让专业的基金经理人来负责买卖多支股票,股民只需要买基金和卖基金即可
在java中也是如此,web有经典的三层架构,controller,service,mapper,我们在controller中调用service的方法,service中调用多个mapper的方法。