- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 大卫的Design Patterns学习笔记24:后记
虽然学习、研究设计模式已经很久,但一直未敢动笔写下任何关于设计模式的文章,一则是因为DP属于软件设计技术,较其它实用编程技术,更为抽象,需有认真思考、充分实践才能领会;其二,虽然GoF的DP一书已对所列举的23种Pattern作了详细的分析、介绍,但要逐一将体会写下来,仍然是一件十分艰巨的任务。因此,从写第一篇概述到现在历时3月有余(已记不清其间有多少次为了举一个贴切的例子苦恼到深夜;原本计划用1
2005-08-04 08:40:00 2450 2
原创 大卫的Design Patterns学习笔记23:Vistor
大卫的Design Patterns学习笔记23:Vistor 一、概述前面已经讨论过的Adapter模式告诉我们如何应对接口不一致对我们的设计造成的影响,但是,这并不能在如下的Context下发挥多大的作用:一个类系中的多个类要求支持相同的操作,但是这些类提供的接口并不一致。看到这里,你可能会说,我干嘛要用什么Adapter?我才没那么笨呢,我直接修改整个类系的接口方法,
2005-08-04 08:39:00 2377
原创 大卫的Design Patterns学习笔记22:Template Method
一、概述Template Method(模板方法)模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这里所说的Template跟Generic Programming(范型编程)中讨论的C++的template不是一回事(虽然有一定的相似性),C++的template是一种逻辑复用的方式,它可以不
2005-08-04 08:37:00 1582
原创 大卫的Design Patterns学习笔记21:Strategy
一、概述Strategy(策略)模式又称Policy模式,用于定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。这里的算法并非狭义的数据结构或算法理论中所讨论的KMP、shell sort等算法,而是指应用程序设计中不同的处理逻辑,前面所说的狭义的算法只是其中的一部分。Strategy模式使得算法与算法的使用者相分离,减少了二者间的耦合度,使得算法可独立于使用它的客户而变化;同时,由于
2005-08-03 08:52:00 1824
原创 大卫的Design Patterns学习笔记20:State
一、概述State(状态)模式用于把一个对象的内部状态从对象中分离出来,形成单独的状态对象,所有与该状态相关的行为都放入该状态对象中。一个对象可能处在这样或者那样的状态,并且在不同的状态下会表现出不同的行为,这是很平常的事情,例如,我们制作一个定点报时程序,当时间是0:00-12:00时,问候语是:“Good Morning! 现在是...AM.”;当时间是12:00-18:00时,问候语是:“G
2005-08-03 08:49:00 1641
原创 大卫的Design Patterns学习笔记19:Observer
一、概述Observer(观察者)模式又被称作发布-订阅(Publish-Subscribe)模式,用于定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。二、结构Observer模式的结构如下图所示: 图1、Observer模式类图示意上面的类图中包括如下组成部分:Subject(抽象主题)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每
2005-08-03 08:46:00 1826
原创 大卫的Design Patterns学习笔记18:Memento
一、概述Memento(备忘录)模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。二、结构Memento模式的类图结构如下图所示: 图1、Memento模式类图示意Memento模式所涉及的角色有三个,备忘录角色、发起人角色和负责人角色。其中:Memento(备忘录):负责存储原发器对象的内部状态,并可防止原发器以外的其他对象
2005-08-03 08:44:00 1731
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人