惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
D
DataBreaches.Net
雷峰网
雷峰网
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
月光博客
月光博客
V
Visual Studio Blog
美团技术团队
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
博客园 - 【当耐特】
V
V2EX
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东

博客园 - cjfwu

设计模式学习4-Bridge模式 设计模式学习3-Strategy模式 设计模式学习2-Adapter模式 设备控制(反馈处理) 通过System.IO.Packaging实现打包和解包 将目录添加环境变量 设备控制之矩阵状态显示 windows shell 编程3(函数解释) windows shell 编程2(浏览文件夹) windows shell 编程1(概念) 不同命名空间下名称和结构相同的类相互序列化与反序列化 通过SvcUtil.exe生成客户端代码和配置 分组 在“添加引用”对话框中显示需要的Assembly 只运行一个实例 SVN操作 托盘操作 获得树节点的高度 枚举的操作
设计模式学习1-Facade模式
cjfwu · 2013-03-23 · via 博客园 - cjfwu

背景描述:

我们经常会碰到这样的情况:拿到一个别人开发的类库,需要在此基础上做二次开发,而这个类库因为包含所有可能用到的功能而过于复杂,而我们只需要其中一部分功能或者希望以比较简单的方式使用它,这时Facade模式就派上用场了。

Facade模式:

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

实现:定义一个(或多个)具备所需接口的新类,让新的类使用原有的系统。

结构图:

            

说明:说白了Facade模式就是把原来复杂的接口变成简单统一的接口,方便Client使用。

Facade模式变体:

除了上述基本用法以外,Facade模式还有其他的应用场合:

  1. 除了使用系统中的原有功能外还需要提供一些新功能,比如:记录对特定方法的调用等,新功能让Facade去做好了。
  2. Facade模式可以用来隐藏或者封装系统,这样做的目的有两个:A.跟踪系统的使用情况:通过强制所有对系统的访问都必须经过Facade,可以很容易地监视系统的使用情况。B.改换系统:未来可能需要切换系统,通过将原系统作为Facade类的一个私有成员,可以最省力地切换到新的系统。
  3. 减少Client必须处理的对象数量:每个Client只需要处理一个Facade对象就可以了。