打字猴:1.70047006e+09
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 ]  [ 下一页 ]