设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 中介者模式(Mediator) - Java实现
2017-06-20 23:31
791 查看
设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 中介者模式(Mediator)
中介者封装一系列对象操作,使对象之间不需要显式操作,从而实现耦合松散。
一、说明:
1、IMediator 中介者(接口);
2、AbstractColleague 同事类(彼此之间相互影响的类);
3、ColleagueA 同事类.实现类;
4、ColleagueB 同事类.实现类;
5、Mediator 中介者.实现类。
二、Java实现,代码如下:
1、IMediator
2、AbstractColleague
3、ColleagueA
4、ColleagueB
5、Mediator
6、Test
输出:
colleagueA : 0
colleagueB : 0
parting line !!!
colleagueA : 2
colleagueB : 1
parting line !!!
colleagueA : 4
colleagueB : 3
中介者封装一系列对象操作,使对象之间不需要显式操作,从而实现耦合松散。
一、说明:
1、IMediator 中介者(接口);
2、AbstractColleague 同事类(彼此之间相互影响的类);
3、ColleagueA 同事类.实现类;
4、ColleagueB 同事类.实现类;
5、Mediator 中介者.实现类。
二、Java实现,代码如下:
1、IMediator
package com.java.designPattern.mediator; /** * 中介者 - 接口 * */ public interface IMediator { public void handleColleagueA(); public void handleCooleagueB(); }
2、AbstractColleague
package com.java.designPattern.mediator; /** * 同事类 - 彼此之间相互影响 * */ public abstract class AbstractColleague { private Integer num; public AbstractColleague(Integer num) { this.num = num; } public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } public abstract void setNum(Integer num, IMediator mediator); }
3、ColleagueA
package com.java.designPattern.mediator; /** * 同事类 - 实现类 * */ public class ColleagueA extends AbstractColleague { public ColleagueA(Integer num) { super(num); } @Override public void setNum(Integer num, IMediator mediator) { setNum(num); mediator.handleCooleagueB(); } }
4、ColleagueB
package com.java.designPattern.mediator; /** * 同事类 - 实现类 * */ public class ColleagueB extends AbstractColleague { public ColleagueB(Integer num) { super(num); } @Override public void setNum(Integer num, IMediator mediator) { setNum(num); mediator.handleColleagueA(); } }
5、Mediator
package com.java.designPattern.mediator; /** * 中介者 - 实现类 * */ public class Mediator implements IMediator { private ColleagueA colleagueA; private ColleagueB colleagueB; public Mediator(ColleagueA colleagueA, ColleagueB colleagueB) { this.colleagueA = colleagueA; this.colleagueB = colleagueB; } @Override public void handleColleagueA() { colleagueA.setNum(colleagueB.getNum() + 1); } @Override public void handleCooleagueB() { colleagueB.setNum(colleagueA.getNum() - 1); } }
6、Test
package com.java.designPattern.mediator; /** * 测试类 * */ public class Test { public static void main(String[] args) { ColleagueA colleagueA = new ColleagueA(0); ColleagueB colleagueB = new ColleagueB(0); Mediator mediator = new Mediator(colleagueA, colleagueB); System.out.println("colleagueA : " + colleagueA.getNum()); System.out.println("colleagueB : " + colleagueB.getNum()); System.out.println("parting line !!!"); colleagueA.setNum(2, mediator); System.out.println("colleagueA : " + colleagueA.getNum()); System.out.println("colleagueB : " + colleagueB.getNum()); System.out.println("parting line !!!"); colleagueB.setNum(3, mediator); System.out.println("colleagueA : " + colleagueA.getNum()); System.out.println("colleagueB : " + colleagueB.getNum()); } }
输出:
colleagueA : 0
colleagueB : 0
parting line !!!
colleagueA : 2
colleagueB : 1
parting line !!!
colleagueA : 4
colleagueB : 3
相关文章推荐
- 设计模式——行为型模式之通过中介者模式(Mediator Pattern)实现各模块之间的解耦(二)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 状态模式(State Pattern) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 解释器模式(Interpreter) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 责任链模式(Chain of Responsibility) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 策略模式(Strategy) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 命令模式(Command) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 访问者模式(Visitor) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 模板方法模式(Template Method) - Java实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 观察者模式(Observer) - Java实现
- 设计模式十八:mediator(中介者模式)——对象行为型模式
- 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
- Java设计模式十二: 中介者模式(Mediator Pattern)
- Java开发中的23种设计模式之二十二:中介者模式(Mediator)
- java设计模式22——中介者模式(Mediator)
- 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
- java设计模式(行为型)之中介者模式
- 我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)
- 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
- 设计模式(17)-行为型-中介者模式(Mediator)
- JAVA设计模式十三:--Mediator(中介者模式)