打字猴:1.700479791e+09
1700479791
1700479792 }
1700479793
1700479794 在抽象同事类中定义了每个同事类对中介者都非常了解,如此才能把请求委托给中介者完成。三个同事类都具有相同的设计,即定义一个业务接口以及每个对象必须实现的职责,同时既然是同事类就都继承AbsColleague。抽象同事类只是一个标志性父类,并没有限制子类的业务逻辑,因此每一个同事类并没有违背单一职责原则。首先来看职位接口,如代码清单33-12所示。
1700479795
1700479796 代码清单33-12 职位接口
1700479797
1700479798 public interface IPosition{
1700479799
1700479800 //升职
1700479801
1700479802 public void promote();
1700479803
1700479804 //降职
1700479805
1700479806 public void demote();
1700479807
1700479808 }
1700479809
1700479810 职位会有升有降,职位变化如代码清单33-13所示。
1700479811
1700479812 代码清单33-13职位
1700479813
1700479814 public class Position extends AbsColleague implements IPosition{
1700479815
1700479816 public Position(AbsMediator_mediator){
1700479817
1700479818 super(_mediator);
1700479819
1700479820 }
1700479821
1700479822 public void demote(){
1700479823
1700479824 super.mediator.down(this);
1700479825
1700479826 }
1700479827
1700479828 public void promote(){
1700479829
1700479830 super.mediator.up(this);
1700479831
1700479832 }
1700479833
1700479834 }
1700479835
1700479836 每一个职位的升降动作都委托给中介者执行,具体一个职位升降影响到谁这里没有定义,完全由中介者完成,简单而且扩展性非常好。下面我们来看工资接口,如代码清单33-14所示。
1700479837
1700479838 代码清单33-14 工资接口
1700479839
1700479840 public interface ISalary{
[ 上一页 ]  [ :1.700479791e+09 ]  [ 下一页 ]