JAVA设计模式学习第四天 设计模式之Mediator——联通篇
来源:互联网 发布:dialog数据库 专利 编辑:程序博客网 时间:2024/05/01 20:21
中午吃完饭没事,我(133用户)就和 同事张三(130用户)、李四(131用户)一块去高新联通大厅(gaoxinLianTongHall)交手机费。到了高新联通大厅(gaoxinLianTongHall),我们发现因为是中午吃饭时间大厅里只有一个工作人员,因此我们只好一个一个来办理交费业务了,首先是张三(130用户),然后是李四(131用户),最后是我(133用户)。
好了,让我们看看这个过程如何来实现呢:
1、我们先定义联通大厅(LianTongHall)这样一个接口类:
public interface LianTongHall {
public void identifyUserType(LianTongUser user, String
type); //判断用户类型
public void getUserMoney(String type); //获得用户交的钱
}
好了,让我们看看这个过程如何来实现呢:
1、我们先定义联通大厅(LianTongHall)这样一个接口类:
public interface LianTongHall {
public void identifyUserType(LianTongUser user, String
type); //判断用户类型
public void getUserMoney(String type); //获得用户交的钱
}
、定义联通大厅(LianTongHall)的具体实现类:public class ConcreteLianTongHall implements LianTongHall { private User130 user130; private User131 user131; private User133 user133; public void identifyUserType(LianTongUser user, String type) { if (type == "130") { user130 = (User130) user; //130用户 } else if (type == "131") { user131 = (User131) user; //131用户 } else if (type == "133") { user133 = (User133) user; //133用户 } } public void getUserMoney(String type) { //得到用户交的钱 if (type == "130") { user131.pleaseWait(); //131用户请先等 user133.pleaseWait(); //133用户请先等 } else if (type == "131") { user130.pleaseWait(); //130用户请先等 user133.pleaseWait(); //133用户请先等 } else if (type == "133") { user130.pleaseWait(); //130用户请先等 user131.pleaseWait(); //131用户请先等 } }}3、定义联通用户(LianTongUser)接口类:public interface LianTongUser { public void HandInMoney(); //交钱 public void pleaseWait(); //等待}4、定义联通用户(LianTongUser)接口的实现类:A:130用户(User130)public class User130 implements LianTongUser { private final String type = "130"; private LianTongHall liantongHall; public User130(LianTongHall liantongHall) { this.liantongHall = liantongHall; liantongHall.identifyUserType(this, type); //联通大厅判断是那种用户 } public void HandInMoney() { System.out.println("130用户正在交钱!"); liantongHall.getUserMoney(type); //联通大厅得到用户交的钱 } public void pleaseWait() { System.out.println("130用户请先等一会!"); }}B:131用户(User131)public class User131 implements LianTongUser { private final String type = "131"; private LianTongHall liantongHall; public User131(LianTongHall liantongHall) { this.liantongHall = liantongHall; liantongHall.identifyUserType(this, type); //联通大厅判断是那种用户 } public void HandInMoney() { System.out.println("131用户正在交钱!"); liantongHall.getUserMoney(type); //联通大厅得到用户交的钱 } public void pleaseWait() { System.out.println("131用户请先等一会!"); }}C:133用户(User133)public class User133 implements LianTongUser { private final String type = "133"; private LianTongHall liantongHall; public User133(LianTongHall liantongHall) { this.liantongHall = liantongHall; liantongHall.identifyUserType(this, type); //联通大厅判断是那种用户 } public void HandInMoney() { System.out.println("133用户正在交钱!"); liantongHall.getUserMoney(type); //联通大厅得到用户交的钱 } public void pleaseWait() { System.out.println("133用户请先等一会!"); }} 5、编写测试类:public class Test { public static void main(String[] args) { LianTongHall gaoxinLianTongHall = new ConcreteLianTongHall(); //高新联通大厅 User130 zhangsan = new User130(gaoxinLianTongHall); //张三 User131 lisi = new User131(gaoxinLianTongHall); //李四 User133 me = new User133(gaoxinLianTongHall); //我 zhangsan.HandInMoney(); //张三交钱 lisi.HandInMoney(); //李四交钱 me.HandInMoney(); //我交钱 }}
6、说明:
A:Mediator定义:用一个中介对象来封装一系列关于对象交互行为。
B:每个成员都必须知道中介对象,并且和中介对象联系,而不是和其他成员联系。
C:在本例中,中介对象就相当于我们的联通大厅,我们都是和联通大厅发生关系,张三、李四和我之间是没有交钱关系的。
- JAVA设计模式学习第四天 设计模式之Mediator——联通篇
- 设计模式之Mediator——联通篇(原创)
- 设计模式之Mediator——联通篇
- 设计模式之Mediator——联通篇
- JAVA设计模式之Mediator模式
- 设计模式学习—Mediator(中介者)
- 设计模式之Mediator
- 设计模式之 mediator
- JAVA设计模式-Mediator
- 设计模式之mediator模式
- 设计模式之Mediator模式
- 设计模式学习笔记——Mediator中介者模式
- 设计模式学习笔记——中介者(Mediator)模式
- 设计模式学习笔记(十八)—Mediator中介者模式
- 设计模式学习—中介者模式(Mediator Design Pattern)
- JAVA设计模式——中介者模式(Mediator)
- Java设计模式——调停者模式(Mediator)
- Java设计模式——Mediator(中介者)模式
- linux中Framebuffer的原理及实现机制
- 代码
- 开始
- Qt的一点总结
- 热爱生命---汪国真
- JAVA设计模式学习第四天 设计模式之Mediator——联通篇
- zoj 2952
- Struts2.1.6 Convention插件0配置
- myeclipse中将项目(java project)导出jar或.exe文件
- VC++中键盘钩子和鼠标钩子
- RMQ的ST算法
- zoj 1168
- Debian按装如何分 /, swap, home 区
- linux 中查看某个单进程程序运行所占内存(linux proc status statm详解)