设计模式笔记-中介者模式

中介者模式,是把原来对象关系的操作放到一个中介类里面,然后重新封装。
public abstract class Colleage {
        private int num ;

        public int getNum() {
               return num ;
       }

        public void setNum( int num) {
               this .num = num;
       }

        public abstract void setEffect (Colleage c1,Colleage c2);
}
public class Colleage1 extends Colleage{

        @Override
        public void setEffect(Colleage c1, Colleage c2) {
              c2.setNum(c1.getNum() * 2);
       }
       
}
public class Colleage2 extends Colleage{
        @Override
        public void setEffect(Colleage c1, Colleage c2) {
              c1.setNum(c2.getNum() * 2);
       }

}
public abstract class AbstractMediator {
        private Colleage c1;
        private Colleage c2;
       
        public AbstractMediator(Colleage c1, Colleage c2) {
               this .c1 = c1;
               this .c2 = c2;
       }
       
        public abstract void effect1 ();
       
        public abstract void effect2();
       
}
public class Mediator extends AbstractMediator{
        private Colleage c1 ;
        private Colleage c2 ;
       
        public Mediator(Colleage c1, Colleage c2) {
               super (c1, c2);
               this .c1 = c1;
               this .c2 = c2;
       }
       
        public void effect1() {
               c1 .setEffect(c1 , c2 );
              System. out .println("c1:" + c1 .getNum());
              System. out .println("c2:" + c2 .getNum());
       }
       
        public void effect2() {
               c2 .setEffect( c1, c2);
              System. out .println("c1:" + c1 .getNum());
              System. out .println("c2:" + c2 .getNum());
       }
       
}
public class MediatorClient {

        public static void main(String[] args) {
               Colleage c1 = new Colleage1();
              c1.setNum(1);
              Colleage c2 = new Colleage2();
              c2.setNum(2);
              AbstractMediator mediator = new Mediator(c1, c2);
              mediator.effect1();
              mediator.effect2();
       }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值