外观、中介者、代理模式

1、外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。子类继承外观类的所有属性方法,客户端只需要跟外观类进行交流,实现了对所有子类的封装。eg:某人要贷款流程:要访问1信用系统、2银行系统之前有没有贷款过、3现有资产系统,有了外观模式无需一个个的去访问查看。现在需要有个统一访问类,只需要访问这个统一类就可以,无需一个个去访问子系统。

2、代理模式:将原类进行封装,客户端只需与代理进行交流。代理就是原类的一个替身。就是用一个对象代表另外一个对象。强调的是个体。eg:服装厂让商场代理卖衣服,买家无需和服装厂交流,直接和商场交流即可。

3、中介者模式:用一个中介者对象来封装一系列对象的交互。中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互。eg:买房中介者把所有的买房人、卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人。


代理模式和外观者模式这两种模式主要不同就是代理模式针对的是单个对象,而外观模式针对的是所有子类。

代理模式是一对一,一个代理只能代表一个对象。中介者模式则是多对多,中介者的功能多样,客户也可以多个。

外观模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。

外观模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。

外观模式是结构型模式,中介者模式是行为型模式。

外观模式协议是单向,中介者模式协议是双向。

猜你喜欢

转载自blog.csdn.net/xml714467338/article/details/54924439