1700470060
1700470061
❑subsystem子系统角色
1700470062
1700470063
可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。子系统并不知道门面的存在。对于子系统而言,门面仅仅是另外一个客户端而已。
1700470064
1700470065
我们来看一下门面模式的通用源码,先来看子系统源代码。由于子系统是类的集合,因此要描述该集合很花费精力,每一个子系统都不相同,我们使用3个相互无关的类来代表,如代码清单23-8所示。
1700470066
1700470067
代码清单23-8 子系统
1700470068
1700470069
public class ClassA{
1700470070
1700470071
public void doSomethingA(){
1700470072
1700470073
//业务逻辑
1700470074
1700470075
}
1700470076
1700470077
}
1700470078
1700470079
public class ClassB{
1700470080
1700470081
public void doSomethingB(){
1700470082
1700470083
//业务逻辑
1700470084
1700470085
}
1700470086
1700470087
}
1700470088
1700470089
public class ClassC{
1700470090
1700470091
public void doSomethingC(){
1700470092
1700470093
//业务逻辑
1700470094
1700470095
}
1700470096
1700470097
}
1700470098
1700470099
我们认为这3个类属于近邻,处理相关的业务,因此应该被认为是一个子系统的不同逻辑处理模块,对于此子系统的访问需要通过门面进行,如代码清单23-9所示。
1700470100
1700470101
代码清单23-9 门面对象
1700470102
1700470103
public class Facade{
1700470104
1700470105
//被委托的对象
1700470106
1700470107
private ClassA a=new ClassA();
1700470108
1700470109
private ClassB b=new ClassB();
[
上一页 ]
[ :1.70047006e+09 ]
[
下一页 ]