自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一雨田的专栏

伟人将复杂的事情变简单,小人将简单的事情变复杂

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 UML类图关系全面剖析

本文随便转载,请保留出处:http://blog.csdn.net/dylgsy/UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关

2006-08-16 18:50:00 63273 88

原创 设计模式简单代码之Mediator模式(二)

上一篇用一个例子程序来说明程序中可能会出现的类间关系过于复杂,而导致程序的结构变差的情况。这一章的目的就是说明如何使用Mediator模式来解决这个问题。在看实际的代码之前,我们先了解一下为什么Mediator模式能够解决这些问题。问题的所在就是类之间被互相引用而导致混乱,这显然就是多对多的关系(这就是Mediator使用的语境),我们要解决混乱,就要把他们的关系简化为一对多的关系。充当这个角色的

2006-08-14 19:33:00 6183 4

原创 设计模式简单代码之Mediator模式(一)

Mediator:中介者模式,当多个对象彼此间都有联系的时候,我们就可以应用Mediator将对象间的多对多关系转换为一对多的关系,这样做,可以使各个对象间的耦合松散。统一管理对象间的通信协议。但也可能使得Mediator对象成为一个系统中的庞然大物,难以维护。 好,我们现在来看一个实例。下面有三个对象:A,B,C。他们之间的关系是相互的,每个对象都知道其余的两个对象,都可以和其余的对象打交道

2006-08-14 19:04:00 5865

原创 设计模式简单代码之Visitor模式

VISITOR模式:将操作独立于类之外,类根据自己需要的操作而接受相应的访问者。这样做的好处是如果需要实现一个新操作,类的结构不用变,特别是整个类层次,如果要变,代价是比较大的。使用Visitor模式就可以保证增加操作非常简单方便,并且符合OCP了。Visitor模式有一个吓人的概念:双分派,其实所谓的双分派也只不过是指:要定义一个操作,需要两个对象来决定, 这两个对象是Element对象和V

2006-08-14 15:21:00 3312 6

原创 设计模式简单代码之State模式

使用State模式,一言以蔽之,技术上就是使用委托来动态改变类的行为。而语义上就是在运行时改变一个类的状态。下面我们使用State模式来模拟交通灯的状态变化。 交通灯就是有三种的状态变化:红黄绿,而变化的循环是:红->黄->绿->黄->红。代码如下:#include iostream>using namespace std;class State...{public:    virtu

2006-08-14 12:36:00 306 8

原创 设计模式简单代码之Strategy模式

Strategy模式和State模式比较相似,在技术上都使用了委托,但从语义上,State模式把状态作为对象, 描述一个类在运行时的状态变化;Strategy模式则是把一个算法当作一个对象,达到在运行时自由替换算法的目的。他们在结构上的不同在于State模式通常有一个Context的引用(例如在我的State模式中,Context就是TrafficLight,但我在这个例子里没包含这个引用,因为例

2006-08-11 15:19:00 2850 1

原创 设计模式简单代码之Iterator模式

Iterator模式,也称为迭代器模式。该模式主要用于将列表的访问和遍历分离出来并放进一个迭代器中。例如STL库的容器就大量的用到Iterator模式。该模式还涉及到一些“内部迭代器”和“外部迭代器”的概念,这属于进一步的研究,暂时不谈。下面看看简单的例子代码(模仿STL的做法):// Iterator.cpp#include iostream>using namespace 

2006-08-10 20:10:00 2596

原创 设计模式简单代码之Memento模式

Memento模式,也称为备忘录模式,作用是保存对象的状态,并在需要的时候恢复对象的状态。这个模式相对比较简单,它有一个Originator(原生者),就是需要被保存状态以便恢复的那个对象;一个Memento对象,这个对象主要是保存原生者的状态,并在适当的时间恢复到原生者里去。而这个适当的时间就是由CareTaker(管理者)来决定的。在现实中的应用最常见的就是实现系统的Undo操作了。

2006-08-10 19:31:00 3884 3

原创 个人的学习曲线模型(UML)

下面就是我的学习曲线图了:我解释一下这个图:第一道是初始阶段(一重天,也就是基础),第二道是对应于某个学习点要使用的工具(也就是我们的兵器,剑),第三道是 进阶阶段(二重天,最高有多少重天我也不知道 :))。学习是一种动态过程,可以使用活动图来建模,但是并不是说学习计算机技术就一定要从头到尾串行的学习,这个过程可以是迭代的。大家还可以看到这个活动图没有结束点,是因为学海无边,我到现在还没找

2006-08-10 15:24:00 5717 5

原创 设计模式简单代码之Flyweight模式

欢迎转载,请注明出处。[Flyweight模式]  官方描述:意图 运用共享技术有效地支持大量细粒度的对象。适用性  1、一个应用程序使用了大量的对象。  2、完全由于使用大量的对象,造成很大的存储开销。  3、对象的大多数状态都可变为外部状态。  4、如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。  5、应用程序不依赖于对象标识。由于Flyweight 对象

2006-08-10 12:30:00 6932 19

转载 身体器官工作时间表,要注意作息!!

一、晚上9-11点为免疫系统(淋巴)排毒时间,此段时间应安静或听音乐 。二、晚间11-凌晨1点,肝的排毒,需在熟睡中进行。三、凌晨1-3点,胆的排毒,亦同。四、凌晨3-5点,肺的排毒。此即为何咳嗽的人在这段时间咳得最剧烈,因排毒动作已走到肺;不应用止咳药,以免抑制废积物的排除。五、凌晨5-7点,大肠的排毒,应上厕所排便。六、凌晨7-9点,小肠大量吸收营养的时段,应吃早餐。疗病者最好早吃,在6点半前

2006-08-09 12:27:00 2314 1

原创 细谈C++多态性的"动"与"静"

在我们讨论多态的时候,先看看什么是硬编码和软编码:硬编码就是把代码写死了,导致弹性不足,降低了可扩展性,例如在代码里的if...else...switch...case...这些代码通常都属于硬编码,项目中的这些代码多了,就相当于说明这个代码的灵活性、扩展性、弹性等等的少了。所以,我们要尽量使用软编码,通俗点就是“别把话说死了,留点转弯的余地” 多态性就是这种软编码特性的反映,下面我们一起

2006-08-08 14:30:00 2442 2

空空如也

空空如也

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

TA关注的人

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