设计模式-中介者模式

先来讲个故事吧。现在买房子,很少能够直接和卖家接触,都是跟中介打交道,中介负责传话。那么放入计算机里面,卖家,买家都是人嘛,那就是有共同的父类的一些对象,打交道就是说话嘛,那就是面对面说话,这样就会有较强的耦合性,假设卖家今天没来,那你岂不是无话可说?这就是耦合性!!!为了解耦,那么就采用中介这样的形式,买家只用告诉中介,买家知道中介一定会告诉卖家,就行了。这样买家,卖家就解耦了。直接贴出代码。

(1)首先解耦的关键点在于中介,要是没有中介,什么都没法说。下面就是中介的超类。


(2)卖家和买家都是人嘛,那么他们就属于同一级别,都会说话、听话。那么定义一个超类。


这个中介呢,肯定是卖家和买家都要和同一个中介保持联系吧,要是不联系或者不同中介,那还说个铲铲哦。那么接下来中介也肯定要有双方的联系方式。

(3)具体的房屋中介了。


这样中介也有了双方的联系方式。最后就是贴出实验了。


可以看到,买家给中介说:我想要买房子了。卖家就能收到中介告诉的消息,那么就可以回复买家了,我有房子在卖呀。

这样就是实现了买卖双方的解耦。总结一下优缺点吧。

优点:

(1)同一层级的对象,需要调用其他对象的一些逻辑,那么这个时候为了解耦,选择了中介的形式。

(2)还有一个好处,文章中没有体现出来,有点像hibernate的多对多关系,可以将单纯的多对多关系转换成两个一对多关系。

缺点:

(1)如果滥用的话,可能会导致中介类的逻辑过于复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值