Facade模式与Proxy模式的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Facade模式与Proxy模式的区别相关的知识,希望对你有一定的参考价值。

参考技术A Facade模式与Proxy模式都属于结构型模式
没有类图,我很难用文字描述他们的区别
简单的说吧
Facade模式提供了接口封装其具有相互依赖关系或者组合关系的子模块
这样可以降低客户端与子系统哦之间的耦合度;划分清楚了公共子系统类(提供让客户端调用的接口)与私有系统类(提供扩展)。
Proxy模式提供对单个子类的实际地址的封装,接口完全与子类一样,便于对子类的管理和优化,尤其是对copy-on-write的优化方式本回答被提问者采纳

外观模式(Facade Pattern)

为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。

引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。

技术分享

外观角色(Facade):是模式的核心,他被客户client角色调用,知道各个子系统的功能。同时根据客户角色已有的需求预订了几种功能组合\
子系统角色(Subsystem classes):实现子系统的功能,并处理由Facade对象指派的任务。对子系统而言,facade和client角色是未知的,没有Facade的任何相关信息;即没有指向Facade的实例。
客户角色(client):调用facade角色获得完成相应的功能。

 

以上是关于Facade模式与Proxy模式的区别的主要内容,如果未能解决你的问题,请参考以下文章

Facade模式详解--设计模式(10)

外观模式facade

外观(Facade)模式

外观模式(Facade Pattern)

设计模式 --外观模式(Facade)

门面模式 facade