Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

UML类图学习

UML类图学习

UML类图学习2016-02-13类图,英文明曰:Class diagram,那么类是经过怎样神奇的蜕变,变成了类图呢?大家都知道,类是具有相似结构、行为和关系的一组对象的描述符,类是面向对象系统中最重要的构造块,类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构件这些类从而实现系统,类加上他们之间的关系就构成了类图,类图中还可以包括接口、包等元素,也可以包含对象等实例。现在我们一起来学习一下类图...
UML包图学习

UML包图学习

UML包图学习2016-02-13包图是UML中用类似于文件夹的符号表示的模型元素的组合,系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中,使用包图可将相关元素归入一个系统,一个包中包含附属包、图表或单个元素。简单的来说,我们可以直接将包理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次那么为什么会出现“包”这个概念呢?我们知道,在面向对象软件开发的视角中,类显然是构件整个系统的基本构...
UML对象图学习

UML对象图学习

UML对象图学习2016-02-13对象图对包含在类图中的事物的实例建模,对象图显示了在某一时间点上一组对象以及他们之间的关系。对象图用于对系统的静态设计视图或静态交互视图建模,这包括对某一时刻的系统快照建模,表示出对象集、对象的状态以及对象之间的关系。举个简单的例子,我们大家都有看足球竞赛的经验,足球竞赛是一种极其简单的运动,即一群人在一块地上疯狂地追逐一个白色的球,在电视机前的我们,只是比较模糊的观看着运动员的踢球状态,难以察觉到细微之处和每个运动员特...
UML活动图概述

UML活动图概述

UML活动图概述2016-02-15活动图,她的英文名字叫Activity Diagram,是一种说明业务用例实现的工作流程,活动图是UML大家族中用于对系统的动态方面建模的无中图之一。举个简单的例子,以建房的工作流为例,首先,我们要选择一个地址,然后,委托一个建筑师对房子进行设计,当我们确定了计划以后,开发商对房子进行投标竞价,一旦我们同意了一种价格和设计计划,就可以开始建造房子了,接下来,展开一系列活动,获取执照,破土动工,挖地基和搭建框架等,直到房子...
UML状态图概述

UML状态图概述

UML状态图概述2016-02-15状态图,英文名曰-Statechart Diagram,她是系统的动态方面建模的五种图之一,一个状态图显示了一个状态机,在为对象的生命期建模中,她发挥着重要的作用,展示了单个对象内从状态到状态的控制流。从实质上来讲,她是一种由于状态、变迁、时间和活动组成的状态机。一般而言,状态图是对类所描述设施的补充说明,描述了类的所有对象可能具有的状态以及引起状态变化的事件。举个简单的例子,灯有两种状态,开着的状态,关闭着的状态,现在...
UML时序图简介

UML时序图简介

UML时序图简介2016-02-15时序图,英文名曰:Sequence Diagram,也称顺序图和序列图,是一种行为图,她通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。她可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机引起转换的触发事件。时序图描述对象是如何交互的,并且将重点放在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。今天我们一起来学习一下时序图的有关知识,首先,我们来看一下,整章...
UML协作图介绍

UML协作图介绍

UML协作图介绍2016-02-15面向对象动态建模,用于建立行为的实体间行为交互的四种图,状态图(Stage Diagram),时序图(Sequence Diagram),活动图(Activity Diagram)前面的博客中,我们已经学习完,今天我们来一起学习一下协作图(Sequence Diagram)。协作图和我们前面学习过的时序图都是一种交互图,协作图强调的是收发消息的对象的组织结构。在系统体系结构的语境中,协作既包括静态方面也包括动态方面的概念...
UML构件图介绍

UML构件图介绍

UML构件图介绍2016-02-17构件图,英文名曰:Component Diagrams用于描述一组构件之间的组织和依赖关系,用于建模系统的静态实现视图,构件可以是可执行程序、库、表、文件和文档等,她包含了逻辑类或者逻辑类的实现信息,因此结构模型视图和实现之间存在映射关系。构件图中也可以包括或子系统,她们都用于将模型元素组织较大的组块。构件是系统中逻辑的并且可替代的部分,她遵循并提供对一组接口的实现,好的构件用定义良好的接口来定义灵活的抽象。例如,可以为...
UML部署图介绍

UML部署图介绍

UML部署图介绍2016-02-17部署图,英文名曰:Deployment Diagram,通常也称配置图,她是用来显示系统中软件和硬件的物理结构,从部署图中,我们可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况,使用部署图可以显示运行显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。部署图是用来面向对象系统的物理方面建模的二种图形之一,部署图展示运行时进行处理的节点和在节点上生存的制品的配置。下面我们来一起看看...
UML总结

UML总结

UML总结2016-02-17作为十期的孩子,我们已经开发过两个系统,学生管理系统和机房收费系统,也接触了软工,编写了一系列文档,不知道小朋友有没有这种感觉,开发一个系统软件和编写一个程序是不一样的,他们之间的差别,用一个比喻来说,如同建造一座大厦和搭一个小狗的家,大型的,复杂的软件系统开发是一项系统工程,必须按工程学的方法来组织软件,需要经过一系列的软件生命周期阶段,这是我们从软件危机中获得的最重要的启示。这一个重要的启示促使了软件工程学的诞生,编程固然...
一个回车符引发的问题思考

一个回车符引发的问题思考

一个回车符引发的问题思考2016-02-19在维护和开发通信类软件产品的过程中,经常需要处理一些软件故障问题。在问题刚出现的时候,大家可能显得手足无措,有一种天都要塌下来的感觉。但在问题原因找到之后,大家又会觉得问题原因非常的简单,要是当初开发的时候仔细一点,是不会犯这样的低级错误的。最近,本人就遇到了一个回车符引发的问题。近日,在开发某软件版本时需要对文件进行操作,在代码中使用了Linux C语言中的opendir函数,但是该函数始终返回NULL,提示文...
String的split()方法介绍

String的split()方法介绍

String的split()方法介绍2016-02-19其实没打算写这么一篇博文的,但是昨天在逛论坛的时候,发现一帖子,然后我又把帖子的内容在群里发了一通,结果出现了让人惊讶的结果,所以这里简单的给大家分享一下split()方法,免得大伙儿以后还会出现这种基本知识错误!接着说一下,昨天看到的帖子内容:String[] str1 = ";;;".split(";");String[] str2 = ";a;;...
设计模式学习:开篇

设计模式学习:开篇

设计模式学习:开篇2016-02-19写这个系列笔记,顺便回忆一下,也可以和大家一起分享一下。在学习设计模式之前,心里可能有一个疑问,就是什么是设计模式。在这里我先废话一下,我说明一下我对设计原则和设计模式的理解,因为个人觉得设计模式,是建立在设计原则的基础之上来的。图1结合图1,这是我个人觉得而已,原则就好像是基础,而模式是针对一些具体环境而生的应对的设计方式。URL地址:http://www.bianceng.cn/Programming/projec...
设计模式学习:开闭原则

设计模式学习:开闭原则

设计模式学习:开闭原则2016-02-19上面讲完序,就开始讲开闭原则,有点不太优雅,不过,正如我说的,在学之前,周围的人和老师,网络上的人都觉得这个不错,你不太清楚,那么就学学吧,学完之后,再仔细去整合,思考,去除杂质,保留精华。在学的过程中总是不断自己停下来仔细思考的方式,我并不推荐学技术的人干(当然立志科研的人一定要有这种钻研精神),因为太耗时间。而且有时候你会发现,你疑问的就是后面提到的。唠叨完毕,开始讲讲开闭原则。1988年,勃兰特·...
设计模式学习:里氏替换原则

设计模式学习:里氏替换原则

设计模式学习:里氏替换原则2016-02-21这节中我们会聊聊里氏替换原则,聊它之前,我们先看看定义。定义:如果对每一个类型为T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。(摘自java与模式一书)如果你觉得定义说的模糊了点,不太清楚,没关系,我们慢慢说明白。里氏替换原则的另一个简短的定义是“所有引用基...
设计模式学习:依赖倒转原则

设计模式学习:依赖倒转原则

设计模式学习:依赖倒转原则2016-02-21依赖:DIP(DependenceInversion Principal),再说这个原则之前,我们先说说什么是依赖吧。这里的依赖关系我们理解为UML关系中的依赖。简单的说就是A use a B,那么A对B产生了依赖。具体请看下面的例子。图一从上面的途中我们可以看到,类A的方法func中用到了B,其实我们可以就这么理解,当A中用到了B,那么我们就说A对B产生了依赖,不过请你注意下,不是声明了就是,请看下面的,这种...
设计模式学习:接口隔离原则

设计模式学习:接口隔离原则

设计模式学习:接口隔离原则2016-02-23对接口的理解这里的接口,不是java语言内部的interface的意思,在这里,可以将接口理解为一个类提供的所有的方法的特征集合,通俗点说就是所有可见方法和可见变量(java的说法, c++的说法是可见函数和可见属性元素)。接口隔离原则的定义:一个类对于另一个类的依赖应当建立在最小的接口上,不应当依赖一些不需要的接口。从实例中来体会定义。假设我们有两个学生类,文科生和理科生,他们需要考试,我们把考试抽象出一个接...
设计模式学习:组合复用原则

设计模式学习:组合复用原则

设计模式学习:组合复用原则2016-02-23组合复用原则定义:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的另外一种说法是:尽量使用(对象)组合,而非继承那么组合和继承各自有什么特点,优缺点,为什么要有这样的优先呢!先来比较一下组合和继承。组合 VS. 继承组合复用的优点和缺点组合优点:1容器类仅能通过被包含对象的接口来对其进行访问。2“黑盒”复用,因为被包含对象的...
设计模式学习:迪米特法则

设计模式学习:迪米特法则

设计模式学习:迪米特法则2016-02-23迪米特法则(Law ofDemeter,LoD)又叫最小知识原则(least knowledge principle,lkp),定义为:一个对象对其它对象尽可能少的理解。通俗的说法有很多,比如,只与你直接的朋友们通信;不要跟“陌生人”说话;这样做的目的就是降低类之间的耦合。想想上课的时候,老师经常说高内聚,低耦合。为了更好的理解,我们说一些题外话。拿笔记本电脑举例子,记得小时候,我拆笔记本...
设计模式学习:单例模式

设计模式学习:单例模式

设计模式学习:单例模式2016-02-23为什么只要一个实例:对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在...
<< 51 52 53 54 55 56 57 58 59 60 >>