设计模式之 - 外观模式 (Facade design pattern)
来源:互联网 发布:ubuntu修改ip地址 编辑:程序博客网 时间:2024/05/18 10:44
1. 模式意图:
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更容易使用。
2. 结构
3. 工厂方法模式C#实现
using System;using System.Collections.Generic;using System.Text;namespace Facade{ class Program { static void Main(string[] args) { Facade facade = new Facade(); facade.MethodA(); //由于Facade的作用,客户端可以根本不知道SubSystemOne,SubSystemTwo等。 Console.ReadLine(); } } class Facade { SubSystemOne one; SubSystemTwo two; SubSystemThree three; public Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); } public void MethodA() { Console.WriteLine("方法组A()----"); one.MethodOne(); two.MethodTwo(); three.MethodThree(); } } class SubSystemOne { public void MethodOne() { Console.WriteLine("子系统方法一"); } } class SubSystemTwo { public void MethodTwo() { Console.WriteLine("子系统方法二"); } } class SubSystemThree { public void MethodThree() { Console.WriteLine("子系统方法三"); } }}
4. 应用场景 / 适用性:
当你要为一个复杂子系统提供一个简单接口时;
客户程序与抽象类的实现部分之间存在着很大的依赖性;
你需要构建一个层次结构的子系统时,使用facade 模式定义子系统中每层的入口点.
5. 外观模式的优点:
1. 它对客户屏蔽子系统组件,因而减少了客户处理对象的数目并使得子系统使用起来更方便。
2. 实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。松耦合关系使得子系统的组件变化不会影响到它的客户。
3. 有利于简化系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。
References:
http://zh.wikipedia.org/wiki/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95
《大话设计模式》
google.com
- 设计模式之 - 外观模式 (Facade design pattern)
- 设计模式之外观模式(Facade Pattern)
- 【Design Pattern】外观模式 Facade
- 设计模式-外观模式(Facade Pattern)
- 【设计模式】 外观模式(Facade Pattern)
- 【设计模式】外观模式(Facade Pattern)
- 设计模式之 -- Facade pattern (外观模式)
- 设计模式之四:外观模式(Facade Pattern)
- C#设计模式之外观模式(Facade Pattern)
- 设计模式之:外观模式(Facade Pattern)
- Java设计模式之--外观模式(facade pattern)
- 设计模式总结之Facade Pattern(外观模式)
- 设计模式学习—外观模式(Facade Design Pattern)
- Java之外观模式(Facade Pattern)
- Php设计模式之【外观模式Facade Pattern】
- 设计模式(结构型)之外观模式(Facade Pattern)
- 《设计模式解析》读书笔记之Facade Pattern(外观模式)
- 设计设计模式——外观模式(Facade Pattern)
- Android 的Backup服务管理机制–助手模式
- Android记事本【4】
- VPS侦探 Linux上vi(vim)编辑器使用教程
- 实验一:JDBC-ODBC 连接数据库技术
- Run SPLAHS2 under SE mode on gem5在gem5的SE模式下,运行SPLASH2程序
- 设计模式之 - 外观模式 (Facade design pattern)
- hdu 1053 Entropy(哈夫曼编码)
- python lambda
- [学习点滴]python添加模块路径
- 实验室生活杂记
- 编码与解码
- 暑假编程训练---K:判断是否直角三角形
- Windows2003 cmd下开启远程桌面服务
- 海量数据处理专题(四)——Bit-map