2008年12月25日
摘要: 概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 结构图 Prototype模式结构图 生活中的例子 Protot... 阅读全文
posted @ 2008-12-25 16:31 lasko 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。 意图 定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Meth... 阅读全文
posted @ 2008-12-25 13:47 lasko 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。 本文通过现实生活中的买KFC的例子,用图... 阅读全文
posted @ 2008-12-25 11:25 lasko 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 模型图 逻辑模型: 物理模型: 生... 阅读全文
posted @ 2008-12-25 11:20 lasko 阅读(325) 评论(2) 推荐(0) 编辑
摘要: 目的 1明白软件架构的概念 2学习软件架构中的关键的设计原则 3学习软件架构中的关键特性 概述 软件体系框架经常被描述为软件系统的结构或是组织,而软件系统就是把各个功能组件整个在一起,完成特定的功能或者一套职能.换句话说,软件架构的重点是把各功能组件组织起来纳入到关注的领域中,如图1.按不同关注领域的应用系统框架。 除了将组件分组,重点考虑的是如何将各个不同部分的组件很好的在一起工... 阅读全文
posted @ 2008-12-25 09:05 lasko 阅读(280) 评论(0) 推荐(0) 编辑