打字猴:1.700462692e+09
1700462692
1700462693 }
1700462694
1700462695 在Mediator抽象类中我们只定义了同事类的注入,为什么使用同事实现类注入而不使用抽象类注入呢?那是因为同事类虽然有抽象,但是没有每个同事类必须要完成的业务方法,当然如果每个同事类都有相同的方法,比如execute、handler等,那当然注入抽象类,做到依赖倒置。
1700462696
1700462697 具体的中介者一般只有一个,即通用中介者,其源代码如代码清单14-13所示。
1700462698
1700462699 代码清单14-13 通用中介者
1700462700
1700462701 public class ConcreteMediator extends Mediator{
1700462702
1700462703 @Override
1700462704
1700462705 public void doSomething1(){
1700462706
1700462707 //调用同事类的方法,只要是public方法都可以调用
1700462708
1700462709 super.c1.selfMethod1();
1700462710
1700462711 super.c2.selfMethod2();
1700462712
1700462713 }
1700462714
1700462715 public void doSomething2(){
1700462716
1700462717 super.c1.selfMethod1();
1700462718
1700462719 super.c2.selfMethod2();
1700462720
1700462721 }
1700462722
1700462723 }
1700462724
1700462725 中介者所具有的方法doSomething1和doSomething2都是比较复杂的业务逻辑,为同事类服务,其实现是依赖各个同事类来完成的。
1700462726
1700462727 同事类的基类如代码清单14-14所示。
1700462728
1700462729 代码清单14-14 抽象同事类
1700462730
1700462731 public abstract class Colleague{
1700462732
1700462733 protected Mediator mediator;
1700462734
1700462735 public Colleague(Mediator_mediator){
1700462736
1700462737 this.mediator=_mediator;
1700462738
1700462739 }
1700462740
1700462741 }
[ 上一页 ]  [ :1.700462692e+09 ]  [ 下一页 ]