软件工程
文章平均质量分 51
Jadyleung
Hello
展开
-
《设计模式Design Pattern》读书笔记之二
《设计模式Design Pattern》读书笔记之二 Abstract Factory模式 别名 Kit 结构 优点1, 通过仅仅将接口提供给Client,使得Client与接口的实现隔离开来,从而Client无需考虑接口的具体实现。 2, 使得更换产品系列(Product Families)更加便捷,仅仅需要替换一个ConcreteFactory的原创 2004-09-28 18:41:00 · 1573 阅读 · 2 评论 -
《设计模式Design Pattern》读书笔记之十四
《设计模式Design Pattern》读书笔记之十四Command模式结构 目的Command对象建立了命令发出者(invoker)与接收者(receiver)之间的联系。从而,invoker不需要知道谁是receiver,它只管向command发出execute()的请求,command自动告诉receiver进行相应的处理。 讨论1, 如果command需要undo/redo操作,那么需要原创 2005-03-24 16:02:00 · 1375 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十五
《设计模式Design Pattern》读书笔记之十五Mediator模式结构 目的为了减少大量的对象(colleague)之间互相通信的复杂性,创建一个中间人--mediator(类似于HUB);这样,各个colleague只要建立跟mediator之间的联系,而不需要直接跟各个colleague直接连接。各个colleague之间的通信完全通过mediator进行处理。 优点1, Media原创 2005-03-25 11:02:00 · 1386 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十三
《设计模式Design Pattern》读书笔记之十三Chain of Responsibility模式结构 目的通过解除消息/请求(request)的发送者与接收者之间的绑定,允许request在一个对象链条中传递,增加request处理的灵活性。当然,一个不可避免的可能性是,该request可能在对象链条中传递到最后都没有被处理。 讨论1, 对于successor;如果没问题的话,可以利用现有原创 2005-03-23 15:09:00 · 1142 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十八
《设计模式Design Pattern》读书笔记之十八State模式结构 目的当一个对象(context)根据当前本身的状态(state),会产生不同的行为的时候,可以采用state模式。把所有跟改状态相关的行为/动作转移到一个外部的state对象中。这样,可以避免context内部大量的switch.if等判断。 优缺点带来更大的灵活性和可维护性,因为一个新的状态可以很容易地通过派生一个类来追加原创 2005-03-31 18:50:00 · 1502 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十六
《设计模式Design Pattern》读书笔记之十六Memento模式结构 目的为了可以把一个对象恢复到以前的状态,却不想公开内部状态使得封装性被破坏。 优点1, 通过把originator的内部状态保存到memento,而不是直接把内部状态公开,保持了originator的封装性。因为memento有两种接口,宽(wide)的接口只会被originator使用,使得别人不能访问这些内部状态。原创 2005-03-28 13:52:00 · 1273 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十七
《设计模式Design Pattern》读书笔记之十七Observer模式结构 目的在一个一对多(one-to-many)的关系中,当一个对象(one)的状态被更新的时候,它的所有的相关对象(many)都会被得到通知。 讨论1, 可能会带来很大的状态更新成本,subject的一个很小的状态更新都可能使得大量的observer进行相应的更新。更为严重的是,如果subject不提供是什么状态被更新了原创 2005-03-30 15:39:00 · 1302 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十九
《设计模式Design Pattern》读书笔记之十九Strategy模式结构 目的当一个对象的某个/某些行为有多种算法的时候,不是通过内部的switch/if等方法,也不是通过派生子类的方法,而是把算法放到一个个单独的对象(有共同的接口)里面。这样,算法的切换只要更换相应的算法对象就可以,达到很大的灵活性。 讨论1, Strategy可以有层次继承结构,达到把共同的算法统一提取出来的目的。2,原创 2005-04-04 14:43:00 · 1321 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之二十一
《设计模式Design Pattern》读书笔记之二十一Visitor模式结构 目的当一个对象(node)结构相对固定的时候,通过创建一个一个visitor对象来对这个结构中的所有node进行访问;而不是在各个node中创建一个一个成员函数;这样,该node结构不需要改变,可以随意增加visitor对象来增加对node结构的不同访问动作。 讨论1, 如果node经常修改(增加/减少等),visi原创 2005-04-04 14:45:00 · 1304 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之二十
《设计模式Design Pattern》读书笔记之二十Template Method模式结构 目的在父类定义一个算法的框架,而可以让改算法中的每个步骤在子类中实现。这样,子类可以随意修改算法中的某个具体步骤,但整个算法的结构没有发生改变。 讨论1, PrimitiveOperation可以是纯虚函数;或者仅仅是一个虚拟函数,父类提供一个缺省的实现。2, PrimitiveOperation可以原创 2005-04-04 14:44:00 · 1341 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十二
《设计模式Design Pattern》读书笔记之十二Flyweight模式结构 目的通过共享对象,减少存储空间的消耗 讨论一个对象的状态可以分为内部状态(intrinsic state)和外部状态(extrinsic state)。内部状态是独立于上下文(context)的,外部状态因context而不同。通过把外部状态分离出去,只保存内部状态的对象就是一个flyweight,flyweight原创 2005-03-22 16:33:00 · 1248 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十一
《设计模式Design Pattern》读书笔记之十一Proxy模式结构 目的当访问一个对象花费比较大的时候,可以为它生成一个代理(proxy)。 应用remote proxy 远程代理,用本地的一个对象代理远程对象virtual proxy 虚拟代理,只有在需要的时候(on demand)才生成一个代价昂贵的对象protection proxy 保护代理,控制对对象的访问权限smar原创 2005-03-18 14:38:00 · 1329 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之一
《设计模式Design Pattern》读书笔记之一 本书所使用到的符号(Guide To Notation) 《Design Pattern》这本书虽然有时候也使用一些非正式的图来表明自己的思想,但在设计模式中表示类/对象之间的关系时,使用规范的图。可能我的书版本比较老一些的缘故?它使用的图并不是基于UML,而是基于UML的前身。类图(class diagram)、对象图(o原创 2004-09-27 14:44:00 · 1787 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之四
Factory Method模式别名 Virtual Constructor 结构 优点1, Creator不知道具体需要创建的对象的类名称,将具体需要创建什么样的类的对象这个决定由派生类来负责。从而使得给对象创建带来很大的灵活性。参见AbstractFactory模式,创建Product的通常方法就是使用FactoryMothod模式。 2,子类之间的具体的关系,由子类自己决定(localize原创 2004-10-06 19:50:00 · 1724 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之三
Prototype模式结构优点 1, Prototype模式的主要优点之一,动态地增加/设置Classs。参看书中的例子,可以任意地创建派生于Graphic的子类,而GraphicTool并不需要知道具体的Graphic的子类的名称,只要传给他一个Prototype(新类的对象的一个指针),就可以通过调用Clone而生成新的对象。 2, Prototype模式的主要优点之二,可以减少很多派生类。考原创 2004-10-05 11:08:00 · 1595 阅读 · 2 评论 -
从FrameWork的角度看Creational Pattern
假设程序开发分成2层,第一层是FrameWork,第二层是Application。一个FrameWork可以在多个Application中使用。这样,FrameWork需要独立于Application,即FrameWork不应该需要看到Application的接口。 假设FrameWork需要使用到一个类AbstractA,Application以AbstractA为基类设计派生类Concret原创 2005-07-08 17:26:00 · 1207 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之九
《设计模式Design Pattern》读书笔记之九Decorator模式结构 目的动态地给一个对象增加功能(responsibilities)。 讨论1, 给一个对象增加功能,最简单的方法是派生一个类;但这是一种静态的方法,不灵活。而Decorator是一种动态的方法,比较灵活。2, 对于一个轻量型的component,Decorator模式是一种比较好的方法,但如果component是重量型的原创 2005-03-17 15:13:00 · 1234 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之十
《设计模式Design Pattern》读书笔记之十Facade模式结构 目的为一个复杂的子系统(sub-system)提供一个简单的接口,可以满足大部分用户的要求,这样可以简化用户对该子系统的理解和使用,也可以降低各个自系统之间的耦合度。只有极少部分用户需要绕过Façade,直接使用子系统的各个组成部分。 参考资料《Design Pattern》 Gang-Of-4 1997原创 2005-03-18 13:25:00 · 1212 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之六
Adapter模式别名Wrapper 结构 class adapter object adapter 目的1, 我们需要利用一个现有的外部类,但该类的接口却与我们现有的系统不一致。2,或者我们想要创建一个可以很灵活地被利用的类,我们可以先把这个类(adaptee)设计得很详细,然后为它设计一个或多个简单的”pluggable adapter”,这些简单的”pluggable adapter”的接原创 2005-03-15 17:00:00 · 1167 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之七
《设计模式Design Pattern》读书笔记之七Bridge模式别名Handle/Body 结构 目的在接口(interface/abstraction)与实现(implementation)之间,建立一条桥梁。从而使得,1, 很容易地为该接口提供不同的实现2, 接口可以很容易被扩展(派生)而与具体实现不相关 与其他模式的联系和区别1, Abstract Factory可以用于创建Bri原创 2005-03-16 13:27:00 · 1167 阅读 · 0 评论 -
《设计模式Design Pattern》读书笔记之八
《设计模式Design Pattern》读书笔记之八Composite模式目的在一个part-whole的继承结构中,把整体(composition)和个体(object,component) 统一地对待。这样,对client来说,不用区别是整体还是个体,都可以进行同样的操作。 结构 讨论1, 一个缺点是给限制composite中的component带来困难。2, 有时候增加一个parent re原创 2005-03-16 15:29:00 · 1127 阅读 · 0 评论 -
需求文档大纲
下面是Alistair Cockburn列出的一个系统需求文档(System Requirments Document)的大纲。最详细的Requirment格式可以在Managing Requirements (Robertson and Robertson, Addison-Wesley, 1999).找到。不过,Requirment应该根据具体项目的具体情况进行合适的裁减。需要注意Use Ca原创 2005-06-14 10:59:00 · 2972 阅读 · 0 评论