中介者模式又叫做调停者模式,顾名思义跟房产中介是类似的。拿房产中介来说,现在房子买家和房子卖家非常多,如果任由房子买家和房子卖家自由交易,则会导致不同的买家和卖家之间有很多交互,一个买家会和多个卖家进行交涉,同样的一个卖家也会和多个买家进行交涉。如果在买房的过程中出现纠纷问题,则很难进行解决。就如下图所示一样。
可以看出不同买家和卖家进行了很多错综复杂的交互,不利于发展。
- 单一系统引入太多其他系统的功能,不利于单一系统的转换和维护;
- 单一系统被过多的系统所依赖,不利于接口的更改,容易牵一发动全身;
- 因为需提供给其他系统操作,系统的接口可能会过于庞大,不容易维护;
迪米特原则,尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。
迪米特原则同样适用于本场景,我们可以引入第三者也就是中介。它的出现不需要买家和卖家进行直接交涉,而是通过中介而进行交涉。并且也不容易出现买卖家之间纠纷,因为有中介者房产中介进行第三方监督。如下图所示:
可以看到图中的关系清晰了很多。
同理在软件开发中,如果为了减少对象之间的交互和耦合,符合迪米特原则,那么就可以使用中介者模式。