打字猴:1.70046266e+09
1700462660
1700462661 //通过getter/setter方法把同事类注入进来
1700462662
1700462663 public ConcreteColleague1 getC1(){
1700462664
1700462665 return c1;
1700462666
1700462667 }
1700462668
1700462669 public void setC1(ConcreteColleague1 c1){
1700462670
1700462671 this.c1=c1;
1700462672
1700462673 }
1700462674
1700462675 public ConcreteColleague2 getC2(){
1700462676
1700462677 return c2;
1700462678
1700462679 }
1700462680
1700462681 public void setC2(ConcreteColleague2 c2){
1700462682
1700462683 this.c2=c2;
1700462684
1700462685 }
1700462686
1700462687 //中介者模式的业务逻辑
1700462688
1700462689 public abstract void doSomething1();
1700462690
1700462691 public abstract void doSomething2();
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();
[ 上一页 ]  [ :1.70046266e+09 ]  [ 下一页 ]