门面模式
2023-04-10 17:31:00

一、门面模式是什么?

门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。

二、代码实现

子系统,不同子系统处理不同的逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ClassA {
public void doSomethingA(){
//业务逻辑A
}
}
public class ClassB {
public void doSomethingB(){
//业务逻辑B
}
}
public class ClassC {
public void doSomethingC(){
//业务逻辑C
}
}

要使用这三个子系统的业务的时候,需要分别创建对象使用

1
2
3
4
5
6
ClassA a = new ClassA();
a.doSomethingA();
ClassA b = new ClassB();
b.doSomethingB();
ClassA c = new ClassC();
c.doSomethingC();

当很多地方都用到这样的业务的时候,并且其中的业务还修改的时候,就很恼火,需要去每个地方修改,这个时候我们就可以把这些业务抽象出来提供门面进行调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Facade {
//被委托的对象
private ClassA a = new ClassA();
private ClassB b = new ClassB();
private ClassC c = new ClassC();
//提供给外部访问的方法
public void methodA(){
this.a.doSomethingA();
}
public void methodB(){
this.b.doSomethingB();
}
public void methodC(){
this.c.doSomethingC();
}
}

调用的时候使用

1
2
Facade f = new Facade();
f.methodA();

当methodA()方法发生改变的时候,我们只需要修改methdA()方法即可,调用的地方不用调整。

Prev
2023-04-10 17:31:00
Next