1700480052
private void downPostion(){
1700480053
1700480054
System.out.println(“官降三级,比自杀还痛苦”);
1700480055
1700480056
}
1700480057
1700480058
}
1700480059
1700480060
该类的方法较多,但是还是非常简单的,它的12个方法分为两大类型:一类是每个业务的独立流程,比如增加工资,仅仅实现单独增加工资的职能,而不关心职位、税收是如何变化的,该类型的方法是private私有类型,只能提供本类内访问;另一类是实现抽象中介者定义的方法,完成具体的每一个逻辑,比如职位上升,同时也引起了工资增加、税收增加。我们编写一个场景类,看看运行结果,如代码清单33-20所示。
1700480061
1700480062
代码清单33-20 场景类
1700480063
1700480064
public class Client{
1700480065
1700480066
public static void main(String[]args){
1700480067
1700480068
//定义中介者
1700480069
1700480070
Mediator mediator=new Mediator();
1700480071
1700480072
//定义各个同事类
1700480073
1700480074
IPosition position=new Position(mediator);
1700480075
1700480076
ISalary salary=new Salary(mediator);
1700480077
1700480078
ITax tax=new Tax(mediator);
1700480079
1700480080
//职位提升了
1700480081
1700480082
System.out.println(”===职位提升===”);
1700480083
1700480084
position.promote();
1700480085
1700480086
}
1700480087
1700480088
}
1700480089
1700480090
运行结果如下所示:
1700480091
1700480092
===职位提升===
1700480093
1700480094
职位上升一级,狂喜
1700480095
1700480096
工资翻倍,乐翻天
1700480097
1700480098
税收上升,为国家做贡献
1700480099
1700480100
我们回过头来分析一下设计,在接收到需求后我们发现职位、工资、税收之间有着紧密的耦合关系,如果不采用中介者模式,则每个对象都要与其他两个对象进行通信,这势必会增加系统的复杂性,同时也使系统处于僵化状态,很难实现拥抱变化的理想。通过增加一个中介者,每个同事类的职位、工资、税收都只与中介者通信,中介者封装了各个同事类之间的逻辑关系,方便系统的扩展和维护。
1700480101
[
上一页 ]
[ :1.700480052e+09 ]
[
下一页 ]