
● 架构设计
文章平均质量分 76
lrgeory
专注
展开
-
UML—机房收费系统
学习了软件工程、软件文档、UML图,总算有了对软件开发有了“专业”这个名词的理解。当然用敲过的机房收费系统练手UML九种图,成为提高自己理解的升华部分。原创 2015-12-19 15:12:04 · 815 阅读 · 14 评论 -
策略模式
设计一款商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。那么如何用策略模式实现呢? 策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换 。此模式让算法的变化,不会影响到使用算法的客户。策略模式结构图 商场收银系统策略图代码实现CashContext类。其它类省略…… class Ca原创 2016-05-28 18:01:33 · 510 阅读 · 25 评论 -
迭代器模式(Iterator)
迭代器模式(Iterator)提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 一.NET应用: .NET框架的迭代器已经为你准备好了接口。去实现就好买车票实例代码实现: IEumerator支持对非泛型集合的简单迭代接口 public interface IEumerator { object原创 2016-06-25 15:32:22 · 480 阅读 · 21 评论 -
外观模式VS事件委托
观察者模式? 又叫发布-订阅(Publish/Subscribe)模式,当一个对象的改变需要同时改变其它对象的时候,考虑用观察者模式。观察者模式的不足? (1)‘抽象通知者’依赖于‘抽象观察者’(2)观察者的方法相同事件委托? 委托的实例是一个具体的函数。事件委托VS观察者模式? (1)‘抽象通知者’不原创 2016-06-09 17:20:31 · 403 阅读 · 8 评论 -
装饰模式
装饰模式?装饰模式是为已有功能动态添加功能 的一种方式什么时候用装饰模式?当系统需要新功能的时候,向旧类添加新的代码。这些新代码通常装饰了原有类的核心职责或主要行为。装饰模式提供了一个非常好的解决方案:把装饰功能放到类中,让这个类包装它要装饰的对象。因此当 需要执行特殊行为时,客户代码可以有选择的使用装饰功能包装对象了。装饰模式的优点总结下:把类中的装饰功能从类中搬移去除,简化原创 2016-06-05 16:42:44 · 431 阅读 · 5 评论 -
代理模式
代理模式?(proxy)为其他对象提供一种代理以控制对这个对象的访问。应用场合?一,远程代理,为对象在不同地址空间提供局部代表。WebService在.NET的应用。二,虚拟代理,存放实例化需要时间的对象。HTML网页的图片显示过程三,安全代理,控制访问权限四,智能指引,调用对象时,代理处理另外一些事。代理模式结构图实例:代理和追求者分别继承于送礼物接口原创 2016-06-05 17:42:58 · 370 阅读 · 2 评论 -
单例模式(Singleton)
单例模式(Singleton) 保证一个类仅有一个实例,提供一个访问它的全局访问点。1.饿汉式单例类 静态初始化的方式:自己被加载时就将自己实例化。所有要提前占用系统资源 C#与公共语言运行库提供。Singleton类: public sealed class Singleton //阻止派生 {原创 2016-06-26 17:19:52 · 528 阅读 · 29 评论 -
简单工厂VS工厂方法VS抽象工厂
抽象工厂模式(Abstract Factory) 提供一个创建一系列相关或相互依赖的接口,而无需指定它们具体的类。工厂方法模式(Factory Method) 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到子类。简单工厂模式 用单独的一个类来做创造实例的过程。 实例比较:用户类:User类原创 2016-06-15 12:46:07 · 453 阅读 · 8 评论 -
状态模式(state)
状态模式(state)当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 。原创 2016-06-17 16:49:16 · 463 阅读 · 9 评论 -
适配器模式(Adapter)
适配器模式(Adapter) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。何时使用适配器模式?系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器。适配器的应用 在.NET中有一个类库已经实现的适配器——DataAdapter。用作DataS原创 2016-06-18 09:20:18 · 558 阅读 · 15 评论 -
备忘录模式(Memento)
备忘录(Memento) 在不破坏封装的前提,捕获并保存一个对象的状态。这样根据需要可以恢复到原先保存的状态 缺点:在资源消耗上 ,备忘录对象会非常耗内存。使用方法Memento类中,都是需要保存的属性。发起者Originateor对象,保存进度到管理者Caretaker的Memento属性中。以方便管理者恢复进度。实例——恢复游戏进度原创 2016-06-18 16:30:03 · 502 阅读 · 15 评论 -
简单工厂模式
对于许多初级编程爱好者来说,代码的质量只要实现功能即可。但随着深入的学习,由“代码无错便是优"的编程思想,开始注意代码的规范,又开始学习了面向对象编程。这三种思想可真是境界越来越高,better and better!那么面向对象编程,好在哪里呢?可维护、可复用、可扩展、灵活性好。是面向对象编程的特点。学习了面向对象编程思想,代码开始考虑通过封装、继承、多态把程序耦合性降低,设计模式的使用使得原创 2016-05-28 15:11:44 · 471 阅读 · 20 评论 -
有趣的UML
UML简介:UML(Unified Modeling Language )(统一建模语言)(标准建模语言),是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统原创 2015-11-03 19:45:20 · 738 阅读 · 10 评论 -
静态图—包图
包图一、包1.为什么要包?1.1在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但对于庞大的系统,其包含的的类成百上千,再加上类间的复杂的关联关系、多重性等,必然大大超出了人们可以处理的复杂度。于是引入了“包”这种分组事物构造块。1.2包的作用:1)对语义上相关的元素进行分类2)定义模型中的“语义边界”3)提供配置管理单元4)在设计时,提供并行工作的单原创 2015-12-09 16:28:04 · 1589 阅读 · 6 评论 -
实现图—构件图、部署图
UML中大部分模型描述了逻辑和设计方面的信息。实现图用来描述实现方面的信息。实现图从系统的层次来描述:——软件系统划分和功能实现——硬件的组成和布局实现图包括:——构件图:用来显示一组构件之间的组织与依赖关系——部署图:用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件原创 2015-12-13 15:48:50 · 1103 阅读 · 11 评论 -
用例图
一、用例图简述1.区分三个定义1.1用例:一组动作序列的描述,是系统的参与者与系统交互后,系统产生动作序列,对特定的参与者产生可以观察到的的结果值。1.2用例图:用例图(use case diagram)是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。1.3用例建模: 用例建模(Use Case Modeling)是使用用例的原创 2015-11-22 17:05:00 · 4163 阅读 · 22 评论 -
交互图—顺序图
UML的行为图和交互图可以用来描述软件系统的行为,上篇博客介绍了行为图,这篇接着介绍如何使用UML的交互图来描述系统的行为。系统行为是通过对象的动作来描述的,系统中对象是相互联系的,并通过传递消息进行交互。交互图:就是用来描述系统中的对象如何进行相互作用的。交互图在UML中有2中,其中顺序图强调消息的时间顺序,合作图强调对象之间的交互关系。原创 2015-12-13 15:47:59 · 2596 阅读 · 5 评论 -
交互图—合作图(collaboration Diagram)
合作图(collaboration):是用来描述系统行为的一种UML交互图。侧重对象间的交互。对比着上次总结的顺序图(sequence),接着总结合作图。原创 2015-12-16 17:23:44 · 1555 阅读 · 10 评论 -
行为图—活动图、状态图
类图、包图、对象图主要介绍一个软件系统的静态部分。系统建模,需要从系统的结构和行为两个方面来描述,其中系统的行为是通过状态图、活动图、序列图和协作图来描述的活动图(activity diagram)一、什么是活动图?活动图与流程图类似,不同之处在于支持并行活动二、活动图的几个基本要素活动状态 Action states 活动状态之间的迁移 Transitions原创 2015-12-13 08:52:22 · 750 阅读 · 3 评论 -
UML类图的四种关系
总结完了类图,对象图。发现UML中类与类的四种关系是个重点,所以来总结下下。UML类与类之间的关系1)泛化(Generalization)UML类图中泛化表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。具体表现父类实例=new子类()2)关联(Association)UML类图的关原创 2015-12-25 14:34:48 · 1563 阅读 · 31 评论 -
软件工程的文档
软件的狭义定义:软件=程序+文档+数据。软件文档(document)也称文件,它有固定不变的形式,可被人和计算机阅读。没有文档的软件,不成其为软件。文档在软件开发人员、软件管理人员、维护人员、用户以及计算机之间起到多种桥梁的作用。文档按产生、使用范围分为三部分。如下图以上这些文档在软件生存期中,随着各阶段的开展适时编制。从下表看出,文档有的跨越多个阶段。这些文档最终要向原创 2015-09-12 14:45:10 · 1091 阅读 · 32 评论 -
软工文档图解(一)
文档第一遍的学习,过程是不求甚解,为了化繁为简,解决就怕不知道的问题。所以才有了这张图,再也不用担心别人问自己文档都有什么了,嘻嘻文档图解一、可行性研究报告二、项目开发计划三、软件需求说明书四、数据要求说明书五、概要设计说明书六、详细设计说明书七、测试计划八、用户原创 2015-10-25 11:04:57 · 921 阅读 · 18 评论 -
静态图—类图
静态图简述类图、对象图和包图统称为静态图(Static Diagram)。类图是所有面向对象建模方法的核心部分。类图描述了系统的静态结构;包图展现了系统的分层结构;对象是类的实例,对象图描述在某个特定时刻多个对象之间的关系。原创 2015-11-24 20:09:32 · 2897 阅读 · 11 评论 -
静态图—对象图
概念对象图(object diagram): 表示一组对象和它们之间的联系。对象图是一个系统的详细状态在某一时刻的快照。对象图实质上是对象类图的实例,或者交互图静态部分的实例。对象图有时也称为实例图(Instance diagram)特性原创 2015-12-05 10:18:59 · 2458 阅读 · 5 评论 -
组合模式(Composite)—分公司与总部
组合模式(Composite) 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。原创 2016-06-19 10:12:22 · 1130 阅读 · 20 评论