
软件工程
阿-杰
享受挨踢的人生,分享技术的精彩!
展开
-
软件工程及软件项目开发流程
1.需求分析:通过对客户业务的了解和与客户对流程的讨论对需求进行基本建 模,最 终形成需求规格说明书。 2.总体设计:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。 3.详细设计:此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明)。 4.开发编程:对系统进行代码编写。 5.测试分析与系统整合:对原创 2012-10-05 15:58:44 · 2755 阅读 · 0 评论 -
设计模式:装饰模式
装饰模式 一、引子 装饰模式?肯定让你想起又黑又火的家庭装修来。其实两者在道理上还是有很多相像的 地方。家庭装修无非就是要掩盖住原来实而不华的墙面,抹上一层华而不实的涂料,让生活 多一点色彩。而墙还是那堵墙,他的本质一点都没有变,只是多了一层外衣而已。 那设计模式中的装饰模式,是什么样子呢? 二、定义与结构 装饰模式(Decor原创 2013-05-08 09:33:01 · 1017 阅读 · 0 评论 -
设计模式:迭代器模式
迭代器模式 一、 引言 迭代这个名词对于熟悉Java 的人来说绝对不陌生。我们常常使用JDK 提供的迭代接口 进行java collection 的遍历: Iterator it = list.iterator(); while(it.hasNext()){ //using “it.next();”do some原创 2013-05-08 09:40:32 · 1031 阅读 · 0 评论 -
设计模式:状态模式
状态模式 一、引子 状态模式自身结构非常简单——前面刚刚介绍了几个结构比较简单的设计模式,和他们 一样,状态模式在具体实现上留下了可变换的余地。我前面已经介绍过它的孪生兄妹策略模 式了,大家可以两者比较着阅读。本文将会讨论两者的区别。 二、定义与结构 GOF 《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它 的行原创 2013-05-08 09:45:20 · 1157 阅读 · 0 评论 -
设计模式:访问者模式
访问者模式 一、引子 对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面 对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个 需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是 个不错的主意。 但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求原创 2013-05-09 12:21:57 · 1016 阅读 · 0 评论 -
设计模式:话说分派
《话说分派》 一、引言 这篇文章,完全是为了更好的讲解访问者(Visitor)模式而写的。让我们进入这扑朔迷离 的分派世界吧(是不是有点夸张了,汗)。 二、名词解释 先来解释下分派的意思吧。。 在OO (object-oriented)语言中使用了继承来描述不同的类之间的“社会关系”——类型 层次。而这些类实例化的对象们则是对这原创 2013-05-09 12:23:37 · 1157 阅读 · 0 评论 -
设计模式:门面模式
门面模式 一、引子 门面模式是非常简单的设计模式。 二、定义与结构 门面模式(facade)又称外观模式。GOF在《设计模式》一书中给出如下定义:为子系 统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这 一子系统更加容易使用。 定义中提到的子系统是指在设计中为了降低复杂性根据一定的规则(比如原创 2013-05-08 09:33:56 · 1065 阅读 · 0 评论 -
设计模式:享元模式
享元模式 一、引子 让我们先来复习下java 中String 类型的特性:String 类型的对象一旦被创造就不可改 变;当两个String 对象所包含的内容相同的时候,JVM 只创建一个String 对象对应这两个 不同的对象引用。让我们来证实下着两个特性吧(如果你已经了解,请跳过直接阅读第二部 分)。 先来验证下第二个特性:原创 2013-05-08 09:34:48 · 1137 阅读 · 0 评论 -
设计模式:责任链模式
责任链模式 一、 引言 初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说一个病人看牙的时候, 医生不小心把拔下的一个牙掉进了病人嗓子里。各个科室的医生推卸责任,搞得病人因此楼 上楼下的跑了不少冤枉路,最后无果而终。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把 你推给另一个对象。至于到底谁解决了这个问题了原创 2013-05-08 09:36:54 · 1185 阅读 · 0 评论 -
设计模式:命令模式
命令模式 一、引言 忙里偷闲,终于动笔了。命令模式是从界面设计中提取出来的一种分离耦合,提高重用 的方法。被认为是最优雅而且简单的模式,它的应用范围非常广泛。让我们一起来认识下它 吧。 先从起源说起。在设计界面时,大家可以注意到这样的一种情况,同样的菜单控件,在 不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能原创 2013-05-08 09:38:01 · 1136 阅读 · 0 评论 -
设计模式:代理模式
代理模式 一、引子 我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer 都喜欢去找代理商,因为 在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代 理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将 自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和 厂商来共原创 2013-05-08 09:35:42 · 1180 阅读 · 0 评论 -
设计模式:组合模式
组合模式 一、引子 在大学的数据结构这门课上,树是最重要的章节之一。还记得树是怎么定义的吗?树 (Tree)是n(n≥0)个结点的有限集T,T 为空时称为空树,否则它满足如下两个条件: 1) 有且仅有一个特定的称为根(Root)的结点; 2) 其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又 是一棵树,并称其原创 2013-05-08 09:31:43 · 1050 阅读 · 0 评论 -
设计模式:适配器模式
适配器模式 一、引子 昨天在给新买的MP3 充电的时候,发现这款MP3 播放器只提供了USB 接口充电的方式, 而它所配备的充电器无法直接给USB 接口充电,聪明的厂商为充电器装上了一个USB 接口转换 器解决了问题。 这个USB 接口转接器正是我们今天要谈到的适配器。而在软件开发中采用类似于上面方式 的编码技巧被称为适配器模式。 二、原创 2013-05-08 09:28:12 · 1097 阅读 · 0 评论 -
设计模式:观察者模式
观察者模式 一、引子 还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总 有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许 放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。 但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。 呵呵,上面提原创 2013-05-08 09:43:18 · 937 阅读 · 0 评论 -
单例模式(singleton)
单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器,一个数字滤波器只能有一个A/D转换器,一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问,一个全局变量使得一个对象可以被访问,但它不能防止你实原创 2013-05-06 12:47:22 · 1224 阅读 · 0 评论 -
设计模式:工厂模式
工厂模式(静态工厂模式、工厂方法模式、抽象工厂模式) 一、引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz 奔驰、Bmw 宝马、Audi 奥迪, 还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz 车后跟司机说“开奔驰车!”, 坐上Bmw 后他说“开宝马车!”,坐上Audi 说“开奥迪车!”。你一定说:这人有病!直接说 开车不就行了?!原创 2013-05-08 09:17:03 · 901 阅读 · 0 评论 -
设计模式:建造模式
建造模式 一、引子 前几天陪朋友去装机店攒了一台电脑,看着装机工在那里熟练的装配着机器,不禁想起 来了培训时讲到的建造模式。作为装机工,他们不用管你用的CPU 是Intel 还是AMD,也 不管你的显卡是2000 千大元还是白送的,都能三下五除二的装配在一起——一台PC 就诞 生了!当然对于客户来说,你也不知道太多关于PC 组装的细节。这和建造模式是多么的相原创 2013-05-08 09:24:08 · 1080 阅读 · 0 评论 -
设计模式:原型模式
原型模式 一、引子 古人云:书非借不能读也。我深谙古人教诲,更何况现在IT 书籍更新快、价格贵、质 量水平更是参差不齐,实在不忍心看到用自己的血汗钱买的书不到半年就要被淘汰,更不想 供养使用金山快译、词霸等现代化工具的翻译们。于是我去书店办了张借书卡,这样便没有 了后顾之忧了——书不好我可以换嘛! 但是,借书也有不爽的地方,就是看到有用或者比较重要原创 2013-05-08 09:26:16 · 938 阅读 · 0 评论 -
设计模式:桥梁模式
桥梁模式 一、引子 桥梁(bright)模式是我介绍的23 种模式中的最后一个结构模式。它是一个功能非常 强大而且适用于多种情况的模式。 二、定义与结构 GOF 在《设计模式》中给桥梁模式的定义为:将抽象部分与它的实现部分分离,使它 们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与 实现类的关系,而是组原创 2013-05-08 09:30:02 · 1003 阅读 · 0 评论 -
设计模式:备忘录模式
备忘录模式 一、引子 俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾 首”状:当初我要是……。如果真的有《大话西游》中能时光倒流的“月光宝盒”,那这世 上也许会少一些伤感与后悔——当然这只能是痴人说梦了。 但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程 序世界里的“月光宝盒”。原创 2013-05-08 09:42:17 · 1052 阅读 · 0 评论 -
设计模式:策略模式
策略模式 一、引子 18 日下午3 时一刻,沈阳,刚刚下完一场几年罕见的大雪,天气格外的冷,公交车在“车 涛汹涌”的公路上举步维艰,我坐在里面不时的看表——回公司的班车就要发车了,我还离 等车的地方好远……。都是这可恶的天气打乱了我的计划!看来我要重新盘算下下了公交车 的计划了:如果在半点以前能够到达等班车的地方,我就去旁边卖书报的小店里面买份《南 方周末原创 2013-05-08 09:44:20 · 1051 阅读 · 0 评论 -
设计模式:单例模式
单例模式 一、引子 单例模式是设计模式中使用很频繁的一种模式,在各种开源框架、应用系统中多有应用, 在我前面的几篇文章中也结合其它模式使用到了单例模式。这里我们就单例模式进行系统的 学习。并对有人提出的“单例模式是邪恶的”这个观点进行了一定的分析。 二、定义与结构 单例模式又叫做单态模式或者单件模式。在 GOF 书中给出的定义为:保证一个类原创 2013-05-08 09:21:33 · 1020 阅读 · 0 评论 -
设计模式:解释器模式
解释器模式 一、引子 解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发 编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。 虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。 二、定义与结构 解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。 它原创 2013-05-08 09:39:01 · 1114 阅读 · 0 评论 -
设计模式:调停者模式
调停者模式 一、引子 Mediator Pattern 中文译为“中介者模式”、“调停者模式”。其实都不是很好,由于现 实生活中的“中介”是要和客户打交道,而省去客户原本繁琐的手续,这一点和门面模式的 初衷很相像;而在Mediator Pattern 中Mediator 是不可见的。“调停”也不好,因为Mediator 在程序中存在的初衷仅仅是规范信息原创 2013-05-08 09:41:11 · 1454 阅读 · 0 评论 -
设计模式:模板模式
模板模式 一、引子 这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使 用到了继承关系。 继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关 系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相 看”。 其实,继承还是有很多自身的优点所在。只是被大家滥原创 2013-05-09 12:20:30 · 1890 阅读 · 0 评论