Design Pattern Explain 读书笔记二——设计模式序言

设计模式的由来:

20 世纪 90 年代初,一些聪明的开发人员偶然接触到 Alexander(Christopher Alexander 的建筑师) 有关模式的工作。他们很想知道,在建筑学成立的理论,是否在软件设计中也适用。

● 软件中是否存在不断重复出现、可以以某种相同方式解决的问题?

● 是否可能用模式方法来设计软件,即先找出模式,然后根据这些模式

创建特定的解决方案?

GoF 自己并没有创造书中的模式,认识到这一点很重要。相反,他们只是

将软件界已经存在的、反映了(针对各种具体问题的)优秀设计经验的模式识别出来。

模式的描述应该包括 4 项:

● 模式的名称

● 模式的目的,即要解决的问题

● 实现方法

● 为了实现该模式必须考虑的限制和约束因素

更为详细的学习一个设计模式,应该考虑以下要点:

名称 :每个模式都有惟一的用于标识的名称

意图 :模式的目的

问题: 模式要解决的问题

解决方案 : 模式怎样为问题提供适合其所处环境的一个解决 方案

参与者和协作者: 模式所涉及的实体

效果: 使用模式的效果,研究模式中起作用的各种因素

实现 :模式的实现方式 注意:实现只是模式的具体体现,而不能视为模式本身

一般性结构: 显示模式典型结构的标准图

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-02 20:46:36

Design Pattern Explain 读书笔记二——设计模式序言的相关文章

Design Pattern Explain 读书笔记二—— Facade 模式

what? Provide a unified interface to a set of interfaces in a sub- system. Facade defines a higher-level interface that makes the subsystem easier to use. --GOF 给子系统中的一堆接口提供一个统一,标准的接口--更高层次的接口--这样使得子系统更易于使用. Facade模式的特点: 对应的译文: 意图: 希望简化原有系统的使用方式.需要定义

Design Pattern Explain 读书笔记三——Adapter

What? Convert the interface of a class into another interface that the clients expect. Adapter lets classes work together that could not otherwise because of incompatible inter- faces. --GOF 先来个例子: 比如我接到需求要开发一套图形系统,于是我设计 统一接口(为了多态性)Shape, Shape接口的行为是

Design Pattern Explain 读书笔记一 重新认识面向对象|规范使用UML

新视角看面向对象 与 UML图 什么是内聚性 closely the operations in a routine are related. 就是一个类中,各个方法之间的联系的紧密程度. 内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高. 所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则. 低内聚就是说一个类中各个方法直接没有关系,最极端的例子就是,这个类中的方法几乎与系统中所有的东西纠缠在一起. 高内聚

Design Pattern Explain 读书笔记三——Facade

哎,刚写了一篇文章,保存草稿,关闭浏览器,再次登录发现文章没了!服了CSDN,一堆bug!已经不是第一次了!垃圾CSDN. 这篇文章就不详细写了,留个纪念! 版权声明:本文为博主原创文章,未经博主允许不得转载.

Design Pattern Explained 读书笔记四——Strategy

What? Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it. --GOF 定义一系列算法,封装每一个,并且使每个封装是可相互替换的.Strategy模式,做到了 以独立于使用这些算法的客户端的方式 , 替换这一系列算法算法.自由

《How Tomcat Works》读书笔记(二)

<How Tomcat Works>读书笔记(二) 这是<How Tomcat Works>第一二章的读书笔记.第一张主要写了一个静态资源处理的web服务器,第二章加了对servlet的处理. 1. 概述 1.1 架构 HttpServer:表示Http服务器,与客户端通信,处理Http请求. StaticResourceProcessor:对静态资源请求进行处理. ServletProcessor:对Servlet资源请求进行处理. Request:表示Http请求,实现了Ser

【读书笔记】设计模式第6章:行为型模式2

本文主要分析了中介者模式.观察者模式.备忘录模式.访问者模式.状态模式.解释器模式,介绍它们的定义.优缺点.使用场景,以及实例代码.为了深刻地理解设计模式,最重要的还是动手编写代码. 我参照书中的例程重新构想了一些更加生动.易于理解的例子,希望大家喜欢. 代码可以通过以下链接进行浏览: http://git.oschina.net/caipeichao/java-design-pattern 这些代码都经过编译运行,保证没有错误. 中介者模式 定义 也叫调停者模式 用一个中介对象来封装一系列同事

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

《Programming in Lua 3》读书笔记(二十二)

日期:2014.8.6 PartⅣ The C API 26 Extending Your Application 使用Lua很重要的一点是用来做配置语言.配合主语言做一些功能的配置. 26.1 The Basics 有的时候程序需要配置一些功能信息,很多时候可能有许多别的方法比用lua做配置要更简单:如使用环境变量或者读取文件,读取文件涉及到文件的解析.如果使用Lua进行配置的话,相当于用lua文件替代了要读取的如csv.txt文件等. 使用Lua进行配置的时候,就需要使用Lua API去控制