项目实践之Facade模式

        之前在设计系统架构的时候,除了一些比较熟悉的模式,像Singleton模式、Strategy模式等,并没把《设计模式》这本书的所有模式都了解得很仔细,当时的想法就是尽量做到几点要求:模块尽量功能单一,模块间耦合度要低,要易于扩展。今天在复习《设计模式》这本书的时候,蓦然发现原来设计的很多东西,《设计模式》书上都能找到对应的原型。

       《设计模式》一书上讲,Facade模式的意图是: 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。动机是:是将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使 子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观 (Facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。

       我们当时的应用也比较简单,主要是为一组应用提供一个数据管理模块,所有需要数据的用户通过该模块获取数据。数据的来源大概分成4类,一是本地内存、二是从网络取(分成两大类,从局域网取数据、从远程服务器取数据)、三是从本地文件 取、四是从数据库取数据(本机数据库、远程数据库) 。如果没有提供这样一个模块,会遇到以下几个问题:一是数据使用者会很麻烦,需要管理数据获取的逻辑。二是不满足模块功能单一的要求。三是复用和扩展性不会太好。简单的类结构图如下(为说明Facade模式,去掉了其余所有的信息):

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一共两个压缩分卷,这是第一个分卷 第一部分 模式编程原理 第1章 模式概述 1.1 模式的概念 1.1.1 什么是模式 1.1.2 模式可以做什么 1.2 模式与架构 1.2.1 什么是架构 1.2.2 架构和模式的关系 1.3 从面向对象编程到模式编程 1.3.1 关于封装的哲学 1.3.2 利用继承实现变化的封装和简单的复用 1.3.3 借助模式封装多个变化 1.3.4 模式帮助我们解决问题 第2章 Delphi的模式编程机制 2.1 对象模型机制 2.1.1 对象模型 2.1.2 对象建模和模式编程 2.1.3 对象关系与复用 2.2 动态绑定机制 2.2.1 方法绑定 2.2.2 虚方法 2.2.3 多态 2.3 类型转换机制 2.3.1 类型 2.3.2 向上转型 2.3.3 向下转型 2.4 接口抽象机制 2.4.1 接口的概念 2.4.2 抽象类 2.4.3 对象接口 2.4.4 抽象类与对象接口的比较 2.4.5 针对接口而不是针对实现编程 第3章 模式编程法则 3.1 开闭法则(OCP) 3.2 Liskov代换法则(LSP) 3.3 依赖反转法则(DIP) 3.4 接口隔离法则(ISP) 3.5 单一职责法则(SRP) 第二部分 创建型模式编程 第4章 工厂方法模式(Factory Method) 4.1 模式解说 4.2 结构和用法 4.2.1 模式结构 4.2.2 代码模板 4.2.3 问题讨论 4.3 范例与实践 4.3.1 利用工厂方法模式设计可动态切换持久层机制的应用 4.3.2 范例小结 第5章 抽象工厂模式(Abstract Factory) 5.1 模式解说 5.2 结构和用法 5.2.1 模式结构 5.2.2 代码模板 5.3 范例与实践 5.3.1 用抽象工厂模式动态构造界面风格 5.3.2 WebSnap的Web Module架构与抽象工厂模式 5.3.3 范例小结 第6章 建造者模式(Builder) 6.1 模式解说 6.2 结构和用法 6.2.1 模式结构 6.2.2 代码模板 6.3 范例与实践 6.3.1 一个数据集对象产品的建造者模式 6.3.2 范例小结 第7章 单例模式(Singleton) 7.1 模式解说 7.2 结构和用法 7.2.1 模式结构 7.2.2 代码模板 7.2.3 Delphi对象构造机制与单例模式 7.3 范例与实践 7.3.1 一个共享数据库连接的单例模式范例 7.3.2 范例小结 第8章 原型模式(Prototype) 8.1 模式解说 8.2 结构和用法 8.2.1 模式结构 8.2.2 代码模板 8.3 范例与实践 8.3.1 Delphi对象的克隆 8.3.2 用原型模式克隆字体 8.3.3 Delphi对象流化与原型模式 8.3.4 范例小结 第9章 适配器模式(Adapter) 9.1 模式解说 9.2 结构和用法 9.2.1 类的适配器模式 9.2.2 对象的适配器模式 9.2.3 问题讨论 9.3 范例与实践 9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 桥接模式(Bridge) 10.1 模式解说 10.2 结构和用法 10.2.1 模式结构 10.2.2 代码模板 10.3 范例与实践 10.3.1 使用桥接模式改进数据持久层的健壮性 10.3.2 基于桥接模式的一个数据视图程序 10.3.3 范例小结 第11章 合成模式(Composite) 2 11.1 模式解说 11.2 结构和用法 11.2.1 模式结构 11.2.2 代码模板 11.2.3 问题讨论 11.3 范例与实践 11.3.1 合成模式在组织机构管理系统的应用 11.3.2 范例小结 第12章 装饰者模式(Decorator) 12.1 模式解说 12.2 结构和用法 12.2.1 模式结构 12.2.2 代码模板 12.2.3 问题讨论 12.3 范例与实践 12.3.1 装饰者模式在图片观赏器的应用 12.3.2 范例小结 第13章 门面模式Facade) 13.1 模式解说 13.2 结构和用法 13.2.1 模式结构 13.2.2 代码模板 13.2.3 问题讨论 13.3 范例与实践 13.3.1 门面模式和分布式系统的设计优化 13.3.2 用门面模式设计的COM+银行转账系统 13.3.3 COM+银行转账系统实现代码剖析 13.3.4 范例小结 第14章 享元模式(Flyweight) 14.1 模式解说 14.2 结构和用法 14.2.1 模式结构 14.2.2 代码模板 14.2.3 问题讨论 14.3 范例与实践 14.3.1 对象池技术和享元模式 14.3.2 享元模式在任务调度系统的应用 14.3.3 范例小结 第15章 代理模式(Proxy) 15.1 模式解说 15.2 结构和用法 15.2.1 模式结构 15.2.2 代码模板 15.3 范例与实践 15.3.1 代理模式在数据库程序的应用 15.3.2 范例小结 第四部分 行为型模式编程 第16章 责任链模式(Chain of Responsibility) 16.1 模式解说 16.2 结构和用法 16.2.1 模式结构 16.2.2 代码模板 16.2.3 问题讨论 16.3 范例与实践 16.3.1 责任链模式项目审批系统的应用 16.3.2 责任链模式对代码的重构 16.3.3 范例小结 第17章 命令模式(Command) 17.1 模式解说 17.2 结构和用法 17.2.1 模式结构 17.2.2 代码模板 17.2.3 问题讨论 17.3 范例与实践 17.3.1 Delphi的Action编程机制与命令模式 17.3.2 一个兼有撤销重做功能的文本编辑器范例 17.3.3 范例小结 第18章 解释器模式(Interpreter) 18.1 模式解说 18.2 结构与用法 18.2.1 模式结构 18.2.2 代码模板 18.3 范例与实践 18.3.1 一个罗马数字到阿拉伯数字的转换器程序 18.3.2 范例小结 第19章 迭代子模式(Iterator) 19.1 模式解说 19.2 结构与用法 19.2.1 模式结构 19.2.2 代码模板 19.2.3 问题讨论 19.3 范例与实践 19.3.1 一个基于迭代子模式的图片播放器 19.3.2 范例小结 第20章 介者模式(Mediator) 20.1 模式解说 20.2 结构与用法 20.2.1 模式结构 20.2.2 代码模板 20.2.3 问题讨论 20.3 范例与实践 20.3.1 介者模式在聊天室系统的应用 20.3.2 范例小结 第21章 备忘录模式(Memento) 21.1 模式解说 21.2 结构与用法 21.2.1 模式结构 21.2.2 代码模板 21.2.3 问题讨论 21.3 范例与实践 21.3.1 备忘录模式在地理信息系统的应用 21.3.2 范例小结 第22章 观察者模式(Observer) 22.1 模式解说 22.2 结构与用法 22.2.1 模式结构 22.2.2 代码模板 22.2.3 问题讨论 22.3 范例与实践 22.3.1 观察者模式在界面色彩主题的应用 22.3.2 范例小结 第23章 状态模式(State) 23.1 模式解说 23.2 结构与用法 23.2.1 模式结构 23.2.2 代码模板 23.2.3 问题讨论 23.3 范例与实践 23.3.1 状态模式在信用卡账户管理系统的应用 23.3.2 范例小结 第24章 策略模式(Strategy) 24.1 模式解说 24.2 结构与用法 24.2.1 模式结构 24.2.2 代码模板 24.2.3 问题讨论 24.3 范例与实践 24.3.1 策略模式在酒店管理系统的应用 24.3.2 范例小结 第25章 模板方法模式(Template Method) 25.1 模式解说 25.2 结构与用法 25.2.1 模式结构 25.2.2 代码模板 25.2.3 问题讨论 25.3 范例与实践 25.3.1 模板方法在离线数据库系统的应用 25.3.2 范例小结 第26章 访问者模式(Visitor) 26.1 模式解说 26.2 结构与用法 26.2.1 模式结构 26.2.2 代码模板 26.2.3 问题讨论 26.3 范例与实践 26.3.1 访问者模式在薪酬福利管理的应用 26.3.2 范例小结 主要参考文献

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值