`
非飞
  • 浏览: 80588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式精解 [读书笔记]

阅读更多

做了这么久的软件,从来就没有好好的学习过设计模式。写代码,做设计的时候都是稀里糊涂。做出来的设计,都会不同程度的让自己感觉到不安。这可能就是《设计模式精解》书中所说那种直觉吧。

引用:

留意你的知觉





出自本能的直觉能对设计质量做出令人惊讶的预测。所谓“出自本能的直觉”,是指当你看到某些不喜欢的东西时,你胃部的感觉。我知道这听起来并不科学(而且它的确不科学),但我的经验总是向我证明:当我从直觉上不喜欢一个设计时,一个更好的设计一定就躺在角落里。



Facade模式:关键特征

意图:希望简化现有系统的使用方法。你需要定义自己的接口。
问题:只需要使用一个复杂系统的一个子集。或者,需要用一种特殊的方式与系统交互。
解决方案:Facade向客户展现使用现有系统的一个新的接口。
参与者与协作者:向客户展现一个定制的接口,让客户更容易地使用现有系统。
效果:Facade模式简化了对所需子系统的使用。但是,由于Facade并不完整,因此某些功能对于客户可能是可用的。
现实:1)定义一个(或一组)新的类来提供所需要的接口。
             2)让新的类使用现有的系统。

Facade模式使用于以下情况:








  • 不需要使用一个复杂系统的所有功能,并且可以创建一个新的类来包容访问原有系统的接口的一个子集(通常它就是)比原始系统AP简单得多。
  • 希望包装或隐藏原有系统。
  • 希望使用原有系统的功能,并且希望增加一些新的功能。
  • “编写一个新的类”的代价小于“让所有人学会使用原有系统”或“在未来维护整个系统”所需的代价

 



非飞 2005-03-13 23:41
分享到:
评论

相关推荐

    设计模式精解-GOF23种设计模式解析(VS2012重写实现包含Linux Makefile)

    设计模式精解-GOF23种设计模式解析: VS2012重写所有实现,所有类都分头文件和源文件。包含VS2012完整解决方案,Linux和子工程MakeFile和所有工程的Makefile。所有重写代码都按实际项目要求重写。本资源包含原作者...

    JSP软件工程案例精解

    5. **MVC(Model-View-Controller)设计模式**:在大型项目中,JSP通常与Servlet、JavaBean配合,遵循MVC模式。理解这个模式能帮助我们更好地组织代码,实现低耦合、高内聚的设计。 6. **数据库连接与操作**:JDBC...

    the-23-gang-of-four-design-patterns-with-cplusplus:设计模式精解-GoF 23种设计模式解析附C ++实现

    源代码整理自k_eckel的《设计模式精解-GoF 23种设计模式解析附C ++实现源码》 用法 $ git clone https://github.com/fifilyu/the-23-gang-of-four-design-patterns-with-cplusplus.git $ mkdir the-23-gang-of-four-...

    软件设计师—学习笔记.pdf

    面向对象部分,除了基础概念,还包括UML(统一建模语言)和设计模式的应用。数据结构与算法的学习包括数组、栈、队列、树、图、查找与排序等,以及常见的算法实现。程序设计语言涉及文法、有限自动机、语义理解等,...

    《unix+shell+实例精解》学习笔记

    Unix是最早期的多用户、多任务操作系统之一,其设计哲学强调简洁和模块化,这使得Unix成为了软件开发和系统管理的重要平台。Unix系统提供了丰富的命令行工具和强大的文本处理能力,使得用户可以通过简单的命令完成...

    低功耗设计.pdf

    3. **减少内部活动**:虽然优先级低于外部活动的减少,但避免不必要的电路模块接收时钟信号(如使用门控时钟),以及实施睡眠模式等措施,对于低功耗设计仍至关重要。 4. **并行技术的应用**:如果电源电压可以自由...

    JESD209-3 LPDDR3精解.pdf

    与DDR3L和DDR3U相比,LPDDR3是专为降低能耗而设计的。DDR3L是DDR3的低压版本,其VDDQ电源电压为1.35V,DDR3U则是更低电压的版本,电压为1.25V。而LPDDR3则是独立的低功耗类别,通常工作在更低的电压,例如1.2V或更低...

    C、C++、数据结构等一些基础编程的资料,欢迎刚迈入编程的小伙伴下载阅读

    6. **设计模式精解-GoF 23种设计模式解析附C++**:设计模式是解决软件设计中常见问题的模板,共有23种经典的设计模式,如单例模式、工厂模式、观察者模式等。通过C++实现这些模式,可以提升代码的可读性和可维护性...

    STM32F205XX STM32F21xx 硬件电路设计应用笔记

    ### STM32F205XX与STM32F21xx硬件电路设计应用笔记精解 #### 引言 本应用笔记旨在为系统设计师提供关于STM32F205XX与STM32F21xx微控制器(MCU)开发板特性如电源供应、时钟管理、复位控制、启动模式设置以及调试...

    计算机二级MSoffice操作题笔记(Word和Execl)

    ### 计算机二级MS Office操作题笔记精解 #### Word 操作技巧详解 **一、高级查找与替换** 在 Word 中,高级查找与替换功能非常实用,可以帮助用户精确地定位文档中的特定内容并进行修改。要快速启动该功能,可以...

    软件设计师2005-2018历年真题详解.zip

    《软件设计师2005-2018历年真题详解》是一份极其珍贵的复习资料,涵盖了近十五年的考试真题与解析,对于备考软件设计师这一专业资格认证的考生来说,具有极高的参考价值。这份资料包含了两个版本,分别是Word和PDF...

    系统分析师核心考点归纳.pdf

    - 常见的程序设计语言和它们的设计模式。 2. Java企业应用框架对比 - 对比struts、spring和Hibernate等Java企业应用框架。 第七章 操作系统 1. 操作系统类型、功能与结构 - 操作系统的分类及其提供的基本服务。...

    系统分析师十年真题+解析(2007-2017)

    3. **复习笔记精华版**:这份浓缩版的复习笔记是考生快速回顾和记忆关键知识点的工具。它通常包含了重要的概念、公式、流程和最佳实践,是考生在紧张复习阶段的高效学习资料。 4. **系统分析师考试大纲**:考试大纲...

    试卷、试题—--基于php网上考试系统.doc

    2. **数据库设计**:使用MySQL数据库存储试题、用户信息、考试记录等数据,设计合理的数据结构和数据库模式。 3. **界面设计**:采用HTML和CSS进行前端页面布局,Dreamweaver可辅助完成站点和网页设计。 4. **后端...

    工业工程推荐图书.doc

    13. **福特财富笔记**:福特的自述,展现了早期工业化时代的管理创新和生产模式。 14. **NPS现场管理操作手册**:许文治的书提供了全面的现场管理策略,适用于各种生产环境。 15. **改变世界的机器**:沃麦克的另...

Global site tag (gtag.js) - Google Analytics