自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大卫的思维空间

自由的国度,思维的空间......

  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 大卫的Design Patterns学习笔记17:Mediator

一、概述Mediator(中介者)模式的名称已经基本能够反映该模式的意图:用一个中介对象来封装一系列的对象之间的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互,而不是在各车辆之间进行交互。Mediator与Proxy的比较Proxy模式是简化的Mediator模式?个人认为从功能上讲,Me

2005-07-28 09:36:00 2021

原创 大卫的Design Patterns学习笔记16:Iterator

一、概述Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。由于Iterator模式的以上特性:与聚合对象耦合

2005-07-28 09:17:00 1972

原创 大卫的Design Patterns学习笔记15:Interpreter

一、概述Interpreter(解释器)模式描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。在这里使用语言这个词似乎将Interpreter模式的应用范围限制到了一个过于狭小的范围,毕竟,我们不是自然语言或者编程语言设计者,需要注意的是,这里所讨论的语言并非指复杂的自然语言或者编程语言,而是一种语义标记,Interpreter模式负责实现这种标记的定义以及将其

2005-07-28 09:05:00 2003

原创 大卫的Design Patterns学习笔记14:Command

一、概述Command(命令)模式可用于将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,即允许用户指定对何种对象执行何种操作;或者,对请求排队或记录请求日志,以及支持可撤消的操作。二、结构Command模式的结构如下图所示: 图1、Command模式类图示意上图中包括如下角色:客户(Client)角色:创建了一个具体命令(ConcreteCommand)对象并确定其接收者。命令(

2005-07-28 09:02:00 2224

原创 大卫的Design Patterns学习笔记13:Chain of Responsibility

一、概述Chain of Responsibility(职责链,以下简称CoR)模式通过将多个对象串接成一条链(Chain),并沿着这条链传递上层应用传来的请求,直到有一个对象处理它为止,使得多个对象都有机会处理上层应用传来的请求,从而避免请求的发送者和接收者之间的耦合关系。对于Chain中的各个对象,可以采用类似单向链表或双向链表的结构,保存各自后继或者前接元素的引用/指针来实现链接(紧密链接)

2005-07-28 08:58:00 2231

原创 大卫的Design Patterns学习笔记12:Proxy

一、概述大家都用过代理服务器,代理服务器是从出发点到目的地之间的中间层。而Proxy模式中的Proxy功能上与此类似,是对象的访问者与对象之间的中间层。Proxy(代理)模式可用于解决在直接访问对象不方便或不符合要求时,为这个对象提供一种代理,以控制对该对象的访问。二、结构Proxy模式的类图结构如下图所示: 图1:Proxy模式类图示意在上面的类图中,Proxy类是Subject类的子类,但个人

2005-07-27 09:08:00 2027 1

原创 大卫的Design Patterns学习笔记11:Decorator

一、概述继承是对类进行扩展,以提供更多特性的一种基本方法,但是有时候,简单的继承可能不能满足我们的需求。如我们的系统需要提供多种类型的产品:类型A、类型B、...同时,这些产品需要支持多种特性:特性a、特性b、...以下是两种可能的实现:1、继承,分别实现类型Aa、类型Ab、类型Ba、类型Bb、...这种实现方式在类型的数目和所支持特性的数目众多时会造成“类爆炸”,即会引入太多的类型,并且,这种实

2005-07-27 09:05:00 2247

原创 大卫的Design Patterns学习笔记10:Flyweight

一、概述当类的部分属性在整个系统中的多个对象间重复出现时,一个通常的作法是将重复出现的属性从类定义中分离出来,并在多个对象间通过共享来节约系统开销,这种情况在界面相关的应用中尤其常见。如用于浏览目录内容的树,每个节点前面有一个Icon用于表示该节点的类型,如果将该Icon保存在每个节点的数据结构中,无疑是一种巨大的浪费,这时候通过共享(每个节点只需要保存一个所使用Icon的标识即可,在C++中,可

2005-07-27 08:59:00 1959

原创 大卫的Design Patterns学习笔记09:Facade

一、概述Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。实际应用中,我们在对付一些老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接

2005-07-27 08:55:00 1888

原创 大卫的Design Patterns学习笔记08:Composite

一、概述我们往往总是希望用一致的方式访问不同类型的对象,不论这个对象是同一类系中类型A的对象,还是类型B的对象,OO的多态性为我们提供了这种支持。Composite模式将这种观点更进一步,当一个复杂对象由多个同一类系中的对象组成的时候,我们仍然希望用与访问单个对象一致的方式来访问该复杂对象(这其实仍是多态性在发挥作用,但在这个多态方法的内部处理使得我们可以做到“用一致的方法访问”这一点,见示例)。

2005-07-26 08:30:00 2286 1

原创 大卫的Design Patterns学习笔记07:Bridge

一、概述Bridge(桥接)模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。二、结构Bridge模式的结构如下: 图1:Bridge模式类图示意由于Bridge实现抽象-实现的特性,它与Builder模式存在一定的相似性,但二者的区别也是十分显著的,后者更专注于复杂对象的创建,可以认为是Bridge模式的在对象创建方面的一个应用。Bridge模式与Object Adapter模式及后面即

2005-07-21 08:45:00 2183 1

原创 大卫的Design Patterns学习笔记06:Adapter

一、概述Adapter(适配器)模式又称Wrapper模式,主要用于将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。因此,Adapter模式经常被描述成第三方函数库或旧的程序库与现有系统接口/需求不一致时的救星,也正是由于Adapter模式的这种特性,有人也将Adapter模式比喻成变压器,变

2005-07-21 08:42:00 2334 1

原创 大卫的Design Patterns学习笔记05:Singleton

一、概述在很多情况下,我们的系统只允许某个类有一个或指定个数的实例,如一般的应用系统往往有且仅有一个log文件操作类实例,或者,整个系统仅有一个等待事务队列等(注意:Singleton不是用来解决整个应用程序仅有一个实例这样的问题的),在这些情况下可以考虑使用Singleton模式。Singleton(单件)模式用于保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。(GoF: Ensure

2005-07-20 08:53:00 1713

原创 大卫的Design Patterns学习笔记04:Prototype

一、概述Prototype(原型)模式用于动态抽取当前对象运行时的状态,从自身构造出一个新的对象,即自身的拷贝(往往是深拷贝),如果你愿意,你可以叫它Clone模式。二、结构Prototype模式的结构如下图所示: 图1:Prototype模式三、应用Prototype模式在需要拷贝的产品的类型需动态指定时经常被用到。对于类似绘图软件这样的以对象管理为主要目的的应用系统中,各元素往往需要支持动态拷

2005-07-20 08:45:00 2116

原创 大卫的Design Patterns学习笔记02:Factory

  大卫的Design Patterns学习笔记02:Factory 一、概述Factory(工厂)模式用于封装对象的创建过程,将对象的创建独立成单独的程序模块,从而提高整个应用系统的Flexibility。 二、结构主要有以下三种Factory模式:1、Simple Factory模式:专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。

2005-07-19 12:46:00 2766 1

原创 大卫的Design Patterns学习笔记01:前言

大卫的Design Patterns学习笔记01:前言一、概述A pattern is a proven solution to a recurring problem within a given context.Design Patterns(设计模式,以下简称DP),源自Christopher Alexander的《建筑的永恒之道》,这个原本与软件设计不相关的概念经GoF(Gang of F

2005-07-19 11:39:00 3649 1

原创 发布大卫作品:简易建模工具XModeler V0.0.1

XModeler是本人近两年前写的一个小工具,这次为配合的推出,对其进行了一些小的扩充。1、XModeler简介最初想编写一个简单的建模软件是很久以前的事,开始计划用C++来写,希望编个程序能够实践一下《设计模式》书上的23种设计模式,同时,又能巩固自己所学的UML方面的知识,但是,很快就发现实在是举步唯艰,其一是因为自己对设计模式的理解停留在理论层面上,其二也是因为自己对面向对象设计的理解还不够

2005-07-19 11:35:00 2253 1

上海交大计算机网络课件02

上海交大计算机网络课件,值得一读

2007-10-27

上海交大计算机网络课件01

上海交大计算机网络课件,值得一读

2007-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除