随笔分类 -  [20] Analysis & Design

模板方法模式
摘要:概念回顾 1. 使用了继承,并肯定了这个继承的意义,就应该要成为子类的模板,所有重复的代码都应该要上升到父类去,而不是让每个子类都去重复。 2. 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板来处理。 3. 定义一个操作中的算法的骨架,而将其中的一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算... 阅读全文
posted @ 2009-12-01 16:22 冯瑞涛 阅读(514) 评论(0) 推荐(0) 编辑
原型模式(Prototype)
摘要:重要概念回顾 1. 原型模式用原型实例(类中有一个复制自己的方法)指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不知道任何创建的细节。 3.对于.Net 在System命名空间中提供了ICloneable 接口,其中有一个唯一的方法就是Clone()。所以只需要实现这个接口就可以完成原型模式了,代替了上图中的Prototy... 阅读全文
posted @ 2009-12-01 12:53 冯瑞涛 阅读(427) 评论(0) 推荐(0) 编辑
工厂方法模式(Factory Method)
摘要:重要概念 本章内容围绕简单工厂与工厂方法的比较很好的说明了工厂方法模式。 1.简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除类与具体产品的依赖,且无需修改代码,因为逻辑已经包含在了工厂类当中。 2.工厂方法模式定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟到子类。 3.实际上封装实例化对... 阅读全文
posted @ 2009-12-01 10:57 冯瑞涛 阅读(504) 评论(0) 推荐(0) 编辑
代理模式(Proxy)
摘要:大话设计模式讲的和连环画一样,还可以接上,作者真用心,看起来很有趣。 重要概念 1. 为其他对象提供一种代理以控制对这个对象的访问,就是为这个对象实例再包装一层。 2.远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实,比如WebService。 3.虚拟代理,是根据需要创建开销很大的对象,通过他来存放实例化需要很长时间的真实对象。例如网页中的... 阅读全文
posted @ 2009-11-30 21:55 冯瑞涛 阅读(606) 评论(0) 推荐(0) 编辑
装饰模式(Decorator)
摘要:重点概念 1. 把所需的功能按正确的顺序串联起来进行控制。 2. 动态地给一个对象添加一些额外的职责(功能),就添加功能来说,装饰模式比生成子类更为灵活。 3. 感觉和策略模式很像,但是条件设置方法放在父类的公共方法中被继承,区别装饰模式的重点在于“扩展”两个字,扩展原有功能,而不是动态的选择功能。 4. 装饰模式是利用“装饰者类”中的SetComponent 来设置被扩展对象的。这样装饰对... 阅读全文
posted @ 2009-11-30 18:32 冯瑞涛 阅读(634) 评论(2) 推荐(0) 编辑
依赖倒转(依赖倒置)原则
摘要:1. 抽象不应该依赖细节,细节应该依赖于抽象(接口,抽象类)。 2. 针对接口编程,不要对实现编程。 3. 高层模块不依赖底层模块,两者都应该依赖抽象。 4. 依赖倒置含义在于,相互之间不依赖,除了约定好的接口实现,大家都可以灵活自如,子类实现接口进行“策略工厂”实现,高层模块通过使用接口来实现“开闭依赖倒置”。 5.依赖倒置其实可以说是面向对象设计的标志,用何种方式实现不重要,重要在于如何... 阅读全文
posted @ 2009-11-30 15:23 冯瑞涛 阅读(1138) 评论(0) 推荐(0) 编辑
开放-封闭原则(OCP)
摘要:1. 不能修改该,但可以扩展的思想就是开闭原则 2. 软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。也就是对扩展开放,对更改关闭 3. 在面对需求的变更却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出先的版本 4. 多扩展,少修改。 5. 开闭原则的意思就是说,你设计的时候,时刻要考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来了,我们增加一些类就可... 阅读全文
posted @ 2009-11-30 13:15 冯瑞涛 阅读(602) 评论(0) 推荐(0) 编辑
单一职责原则
摘要:1. 单一职责,对一个类而言,应该仅有一个引起他变化的原因。 2. 如果一个类承担的职责过度,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完整其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 3. 单一职责和单件模式不是一回事,单件模式指要求一个类有且仅有一个实例,并且提供了一个全局的访问点。 4. 单一职责想要告诉我们的是,根据功能... 阅读全文
posted @ 2009-11-30 09:16 冯瑞涛 阅读(531) 评论(0) 推荐(0) 编辑
策略模式 (Strategy)
摘要:策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的用户。 说明: 1.通过继承抽象策略实现多个具体策略方法处理,在一个类中传递不同的具体实例做为参数,获得不同的对象的算法,封装在同一个方法中,当这个类的实例调用这个封装了算法的方法时,因传入的对象参数的不同,获得的处理结果也不同。 2.通过传入的对象参数获得操作,改变一个方法的不同处理结果。 3.... 阅读全文
posted @ 2009-11-29 21:18 冯瑞涛 阅读(1233) 评论(0) 推荐(0) 编辑
简单工厂模式
摘要:简单工厂模式是解决了一个灵活通过方法封装 new 对象的操作,也就是解决对象创建问题。下面的计算器实例,演示了通过方法根据条件利用多态的特性建立需要的业务对象执行对象特定的任务。(在这里将全部引用大话设计模式中的例题代码和内容,劳动属于作者。)书中有一个类图非常好,一目了然的说明类图的含义和标记 12页计算器示例逻辑组件(现在电脑粘贴乱码,所以粘贴黑白代码)using System;using S... 阅读全文
posted @ 2009-11-29 11:02 冯瑞涛 阅读(981) 评论(1) 推荐(2) 编辑
UML 交互概述图
摘要:•什么是交互概述图 •交互概述图是将活动图和顺序图嫁接在一起的图 •可以看作活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流 •也可以看作顺序图的变体,它用活动图来补充顺序图 •交互概述图在草图中更加适用,先通过活动图对业务流程进行建模,然后对于一些关键的、复杂度并不高的活动节点进行细化,用顺序图来表示它的对象间的控制流 •不要盲目的使用交互概述图,对于规模... 阅读全文
posted @ 2009-11-28 21:37 冯瑞涛 阅读(6017) 评论(1) 推荐(1) 编辑
UML 交互图 (顺序图、通信图、鲁棒图、定时图)
摘要:•交互与交互图 交互的概念 •一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为 消息 UML中的4种交互图 •顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹 •通信图:UML 2.0中的通信图实际上就是UML 1中的协作图,它强调的是参加交互的对象... 阅读全文
posted @ 2009-11-28 18:43 冯瑞涛 阅读(24145) 评论(2) 推荐(1) 编辑
UML中对关系的描述 (二)
摘要:UML 中的关系是比较难记的部分,这里我把UML常用的关系做一下总结和简单介绍。 说明: 示例图形是使用 EA 7.5 绘制的。 UML 五种基础关系(类图为例)关联关系关联关系连接元素和实例,用无方向实线连接两个模型元素。关联的两端可以为双方标记角色和多重性现实事物不是孤立存在的,对象与对象之间都存在着一定的关系,比如教师和学生,我们用关联关系表示。建角色 角色:代表Class3扮演&ldquo... 阅读全文
posted @ 2009-11-28 12:55 冯瑞涛 阅读(1191) 评论(0) 推荐(0) 编辑
UML 五步法:轻量级OOAD
摘要:这个理论内容源自于我阅读的UML .Net 实战一书,这本书整本都在讲五步法的开发过程,因为他是以.Net 为背景编写的所以我想学习一下他其中的一些应用思想。这本书针对的UML不是2.0 UML 五步法并不是适合于开发复杂系统的全功能的OOAD过程,他没有管理、测试、文档编制和审查功能,UML五步法适合于学习UML的框架过程。 6,7,8,9,10章是细化每一个过程的特定章节。 1.定义 找... 阅读全文
posted @ 2009-11-26 11:53 冯瑞涛 阅读(1178) 评论(1) 推荐(0) 编辑
UML 及其作用
摘要:UML(Unified Modeling Language,统一建模语言)是一组用于描述OOAD过程的图形化表达方式。 UML为交流面向对象的设计中的需求,行为、体系结构的实现提供了一套综合的表示法。 UML绘制工具,EA 和VSU 2010 UML由9个不同类型的图组成: 用例图:显示了系统的外部可视行为。 用例图描述了系统外的人员和系统的交互动作,以及系统的响应,该类型的图可以用于描... 阅读全文
posted @ 2009-11-25 16:31 冯瑞涛 阅读(10750) 评论(2) 推荐(0) 编辑
面向对象的分析和设计(OOAD)
摘要:面向对象的分析和设计(Object Oriented Analysis And Design )3个重要的概念 -- 对象、分析、设计   对象 封装(Encapsulation) 公布功能部分内容,隐含内部实现。 松散耦合(Loose coupling) 耦合代表一个系统使用另一个系统功能的深度或依赖程度,依赖程度越大对于修改所带来的维护就会越多,对其他系统的影响越大,通过接... 阅读全文
posted @ 2009-11-25 12:58 冯瑞涛 阅读(2149) 评论(0) 推荐(0) 编辑
C# 设计模式与重构
摘要:设计模式与重构是软件开发设计的基石,在这里我从.Net 及C#语言的实现角度记录这部分的知识。丰富博客中关于设计模式与重构方面的内容。设计模式基础 本部分已大话设计模式的内容做参考,本书很好读,语言风趣,重视过程,看起来不枯燥挺有意思,值得一读,可以做为一本快速入门的书籍珍藏。1. 简单工厂模式 2. 策略模式 (Strategy) 3. 单一职责原则 4. 开放-封闭原则(OCP) 5. 开闭原... 阅读全文
posted @ 2009-11-24 15:27 冯瑞涛 阅读(1483) 评论(0) 推荐(0) 编辑
UML 部署图
摘要:•如何阅读部署图 阅读基本部署图 上图解释 BS客户端支持IE6亿傻姑娘和FF1.5以上版本,通过Http请求 CS客户端是Windows系统,需要按.net1.1, sw.exe 是客户端程序,通过WebService与服务器通信 服务器是IIS,.Net 1.1 各个组件之间相互依赖,通过ADO.Net 访问数据库 数据库为 Oracle 9i   部署图的主要元素 •... 阅读全文
posted @ 2009-11-24 13:43 冯瑞涛 阅读(4649) 评论(0) 推荐(0) 编辑
DSM领域定义建模和MDA模型驱动架构分析
摘要:Domain-Specific ModelingandModel Driven Architecture DSM(领域定义建模)和MDA(模型驱动架构) 模型在软件开发中的角色 当今信息系统的开发越来越复杂,而且所涉及到的领域也越来越广,开发者必须掌握许多不同的技术,包括流行的面向对象技术,XML,脚本语言,接口定义语言,过程定义语言,数据库定义和查询等等。要把来自于问题领域的需求转换成解决方案需... 阅读全文
posted @ 2009-11-24 12:43 冯瑞涛 阅读(741) 评论(0) 推荐(0) 编辑
MDA(模型驱动架构)
摘要:1. 什么是MDA MDA(Model Driven Architecture)是模型驱动架构,它是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作一种编程语言而不仅仅是设计语言。MDA的关键之处是模型在软件开发... 阅读全文
posted @ 2009-11-24 12:38 冯瑞涛 阅读(3435) 评论(0) 推荐(0) 编辑