1700462292
图14-4 星型网络拓扑
1700462293
1700462294
在星型网络拓扑中,每个计算机通过交换机和其他计算机进行数据交换,各个计算机之间并没有直接出现交互的情况。这种结构简单,而且稳定,只要中间那个交换机不瘫痪,整个网络就不会发生大的故障。公司和网吧一般都采用星型网络。我们是不是可以把这种星型结构引入到我们的设计中呢?我们先画一个示意图,如图14-5所示。
1700462295
1700462296
1700462297
1700462298
1700462299
图14-5 修改后的进销存示意图
1700462300
1700462301
加入了一个中介者作为三个模块的交流核心,每个模块之间不再相互交流,要交流就通过中介者进行。每个模块只负责自己的业务逻辑,不属于自己的则丢给中介者来处理,简化了各模块之间的耦合关系,类图如图14-6所示。
1700462302
1700462303
1700462304
1700462305
1700462306
图14-6 修改后的进销存类图
1700462307
1700462308
建立了两个抽象类AbstractMediator和AbstractColeague,每个对象只是与中介者Mediator之间产生依赖,与其他对象之间没有直接关系,AbstractMediator的作用是实现中介者的抽象定义,定义了一个抽象方法execute,如代码清单14-5所示。
1700462309
1700462310
代码清单14-5 抽象中介者
1700462311
1700462312
public abstract class AbstractMediator{
1700462313
1700462314
protected Purchase purchase;
1700462315
1700462316
protected Sale sale;
1700462317
1700462318
protected Stock stock;
1700462319
1700462320
//构造函数
1700462321
1700462322
public AbstractMediator(){
1700462323
1700462324
purchase=new Purchase(this);
1700462325
1700462326
sale=new Sale(this);
1700462327
1700462328
stock=new Stock(this);
1700462329
1700462330
}
1700462331
1700462332
//中介者最重要的方法叫做事件方法,处理多个对象之间的关系
1700462333
1700462334
public abstract void execute(String str,Object……objects);
1700462335
1700462336
}
1700462337
1700462338
再来看具体的中介者,我们可以根据业务的要求产生多个中介者,并划分各中介者的职责。具体中介者如代码清单14-6所示。
1700462339
1700462340
代码清单14-6 具体中介者
1700462341
[
上一页 ]
[ :1.700462292e+09 ]
[
下一页 ]