`
wusuoya
  • 浏览: 630298 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Design Pattern: Facade 模式

阅读更多

考虑您要撰写一个Web Mail程式,您手上已经有一些已经开发好的元件(Component),像是开发Web Mail所需要的SMTP处理类、允许上传附档的FileUpload类,以及Web安全相关的API、其它相关的Package等等。

当您拿到一些现成的元件,并打算在您的应用程式中使用它们的话,您不应该直接将这些元件耦合至您的应用程式上,例如:
Facade

上面的作法会让您的应用程式直接与多个元件耦合,这种作法不但与元件的依赖度高,日后要修改应用程式本身,或是更换掉依赖的元件都有困难。

您应该定义一个Facade介面,在当中定义好商务逻辑,例如寄送附件档案的方法(method),然后在一个实现类中,组合您手边的元件,使其达成您所 希望的商务行为,例如:
Facade

如上图所示的,您的应用程式本身将不直接依赖于您的元件,而是依赖一个介面,当您想要更改某个商务行为的实作时,只要修改实现的类就可以了,应用程式本身 不用作任何修改。

Facade模式的结构如下:
Facade

Facade模式隐藏了各个元件之间的合作行为,以及元件本身的操作与设定细节,固而必失去了一些直接操作元件的方便性,所以对于喜欢追求 与操作细节的程式设计人员而言,不会很喜欢透过Facade来操作背后的元件,所以您的Facade介面设计,通常要在元件依赖性及元件的支接操作性之间 作个平衡。

分享到:
评论

相关推荐

    36种最新设计模式整理

    Design Pattern: Facade 模式 44 Design Pattern: Flyweight 模式 46 Design Pattern: Proxy 模式(一) 48 Design Pattern: Proxy 模式(二) 49 Design Pattern: Chain of Responsibility 模式 53 Design Pattern:...

    java设计模式源码-DesignPattern:设计模式(Java实现源码)

    DesignPattern项目是设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) 生成...

    java源码解读-DesignPattern:Android源码设计模式解析与实战读书笔记源代码

    DesignPattern Android源码设计模式解析与实战读书笔记源代码 说明: 包名factorypattern.normal表示的是工厂方法模式的普通用法 包名factorypattern.practices表示的是工厂方法模式的常用 包名observerpattern表示...

    单例模式源码java-DesignPattern:在个人自学阶段的23种设计模式代码的全部实现,全部使用Java编写,其中还包括各个设计模式在

    DesignPattern 在个人自学阶段的23种设计模式代码的全部实现,全部使用Java编写,其中还包括各个设计模式在源码中的使用,每种设计模式都举了一个简单的小例子来进行实现,并加以注释 包名解释 一、DesignPattern ...

    designPatterns:设计模式

    design pattern 设计模式 创建型设计模式 创建型模式设计到将对象实例化,这类模式都提供了一个方法,将客户从所需要的实例化对象中解耦。 原型模式 Prototype 结构型设计模式 结构型模式可以让你把类或者对象组合到...

    java餐饮管理系统源码6-design_patterns:设计模式

    java餐饮管理系统源码6 design_patterns design_patterns 设计模式相关网站: Java设计模式书籍: 大话设计模式 Head First 设计模式 设计模式的类型: ...外观模式(Facade Pattern) 享元模式(Flywe

    设计模式 design pattern

    4.5 FACADE(外观)—对象结构型 模式 121 4.6 Flyweight(享元)—对象结构型 模式 128 4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator...

    《Java Design Patterns》高清完整英文PDF版

    Learn how to implement design patterns in Java: each pattern in Java Design Patterns is a complete implementation and the output is generated using Eclipse, making the code accessible to all....

    uu-design-pattern:23种设计模式案例

    |- singleton 单例模式案例 |- structural(结构型模式) |- facade 外观模式案例 |- decorator 装饰器模式案例 |- adapter 适配器模式案例 |- flyweight 享元模式案例 |- composite 组合模式案例

    design-pattern-java.pdf

    扩展系统功能——装饰模式(三) 扩展系统功能——装饰模式(四) 外观模式-Facade Pattern 深入浅出外观模式(一) 深入浅出外观模式(二) 深入浅出外观模式(三) 享元模式-Flyweight Pattern 实现对象的复用——...

    深入浅出设计模式中文

    Head First Design Pattern 中文版本 1 Welcome to Design Patterns: an introduction 1 2 Keeping your Objects in the know: the Observer Pattern 37 3 Decorating Objects: the Decorator Pattern 79 4 Baking ...

    [源代码] 《易学 设计模式》 随书源代码

    第09章 一目了然:外观模式 (Facade) 第10章 改头换面:适配器模式 (Adapter) 第11章 越俎代庖:代理模式 (Proxy) 第12章 真人不露相:装饰模式 (Decorator) 第13章 游刃有余:桥模式 (Bridge) 第14章 如法炮制:...

    Programming.in.the.Large.with.Design.Patterns

    It starts with a general introduction to all types of programming patterns and goes on to describe 10 of the most popular design patterns in detail: Singleton, Iterator, Adapter, Decorator, State, ...

    C#设计模式-吕震宇

    设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern C#设计模式(10)-Adapter ...

    Unity-Design-Pattern:用Unity C#编写的四个设计模式的全部帮手,还有许多示例。 还有一些用Unity C#编写的游戏编程模式。 |各种设计模式的Unity3D C#版本实现

    Unity3D中编写的设计模式 该存储库是有关用Unity3D C#编写的出色设计模式的。 现在,此存储库中的Unity3D中已经完成了23个 。 每个模式都包含相应的结构实现,应用程序示例和图表。 与,在此存储库中,每个模式都...

    DesignPatterns:设计模式

    设计模式设计模式:可重用的面向对象软件的元素栏目:如何构建“运行”: Microsoft Visual Studio 2017 v15.7或更高版本Microsoft .Net Framework v4.7或更高版本Microsoft Visual C ++ 2017年

    DesignPattern

    #DesignPattern 《研磨设计模式》书中的例子 --第二章:简单工厂 本质:选择实现 --第三章:外观模式(Facade) 本质:封装交互,简化调用 --第四章:适配器模式(Adapter) 本质:转换匹配,复用功能 --第五章:单例...

Global site tag (gtag.js) - Google Analytics