这段时间学习了楚光明老师解说的C#视频,接触这个学习材料的第一感觉就是老师解说的通俗易懂,非常easy让人去接受;再有就是在学习到UML图和C#的一节时非常有收获,之前自己也学习过UML图的一些知识,但此刻自己貌似顿悟了UML功能的强大。

    UML涉及到了类图、用例图、时序图等图的建立和实现过程,此部分内容自己的博客《UML学习总结》中有具体的介绍,在这里对UML中的一些关系再做一些补充:



*继承*

  指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并能够添加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过keywordextends明白标识,在设计时一般没有争议性;


*实现*

           指的是一个class类实现interface接口(能够是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过keywordimplements明白标识,在设计时一般没有争议性;

*依赖*

能够简单的理解,就是一个类A使用到了还有一个类B,而这样的使用关系是具有偶然性的、、暂时性的、很弱的,可是B类的变化会影响到A;比方某人要过河,须要借用一条船,此时人与船之间的关系就是依赖;表如今代码层面,为类B作为參数被类A在某个method方法中使用;

*关联*

  他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比方我和我的朋友;这样的关系比依赖更强、不存在依赖关系的偶然性、关系也不是暂时性的,通常是长期性的,并且两方的关系通常是平等的、关联能够是单向、双向的;表如今代码层面,为被关联类B以类属性的形式出如今关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

*聚合*

    聚合是关联关系的一种特例,他体现的是总体与部分、拥有的关系,即has-a的关系,此时总体与部分之间是可分离的,他们能够具有各自的生命周期,部分能够属于多个总体对象,也能够为多个总体对象共享;比方计算机与CPU、公司与员工的关系等;表如今代码层面,和关联关系是一致的,仅仅能从语义级别来区分;





*组合*

  组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这样的关系比聚合更强,也称为强聚合;他相同体现总体与部分间的关系,但此时总体与部分是不可分的,总体的生命周期结束也就意味着部分的生命周期结束;比方你和你的大脑;表如今代码层面,和关联关系是一致的,仅仅能从语义级别来区分;

  在这里想说的是自己刚刚认识到UML不仅是一个建模工具,同一时候它还是一个非常好的编程工具,即它能够实现代码的自己主动生成;同一时候在代码无误的情况下,又能够生成UML图,实现了代码和图例的双向转换,让自己再次认识到了Rational Rose这个工具的强大。这样的将抽象代码以可视化的图例形式展现给客户的形式,方便直观,有效地避免了开发人员和用户之间的误会,能够说是一种非常好的衔接吧。

    同一时候,这种产品也让自己对“时势造英雄”这句话有了近一步的理解,在有这种需求的情况下就会有对应产品的产生,来弥补市场的缺陷。满足了客户的需求,同一时候也攻克了诸多的细节问题!

UML图和C#的更多相关文章

  1. UML图中经常用到几种的关系图例

    学习这个东西挺奇怪的,时间一长就容易忘记,或者记不清楚.今天看到一些UML图的关系,发现有些出入了,索性就写下来,以后再忘记的时候过来看看. 在UML的类图中,常见的有以下几种关系: 继承(Gener ...

  2. 用rose画UML图(用例图,活动图)

    用rose画UML图(用例图,活动图) 首先,安装rose2003,电脑从win8升到win10以后,发现win10并不支持rose2003的安装,换了rose2007以后,发现也不可以. 解决途径: ...

  3. 【转】UML图与软件开发过程那点关系

    首先,软工文档, 软工文档,也就是计划,设计,描述,使用软件的一些文件,它最大的特点就是固定不变,用来给不同的人和计算机来阅读.在期间,文档起到了桥梁的作用,看这张图很形象: 在这里在看一下国家统一规 ...

  4. 第一篇:Retrofit主要类UML图

    2016-05-06 16:07:09 1.先上一张Retrofit的代码结构图: 可以看到,Retrofit自身的结构很简单,代码量也不是很大.红色框部分是一些注解类,就是一些标记. 简单的看一下客 ...

  5. [zt]Singleton和Double-Checked Locking设计模式—UML图及代码实现

    Singleton和Double-Checked Locking设计模式,分别指的是单例模式和双重检查锁模式,它们都可以用于确保某个类只有一个对象实例化. 两个模式的区别在于:Singleton模式用 ...

  6. 【UML】如何看Android的UML图

    UML图有很多类型,这里只讨论最重要也最常用的两种 - 类图和时序图. 1. 类图 通过类图,我们可以很容易的了解代码架构,理清模块之间的关系, 包括继承(Inheritance),实现(realiz ...

  7. Eclipse自动生成UML图(转载)

    *ModelGoon是什么? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图等,以作为代码分析或者文档使用). *适用条件 ModelGoon目前最新的版 ...

  8. 图解Android - 如何看Android的UML 图?

    如何看UML图? UML能给我们带来什么? 这是本文要寻找的答案.UML图有很多类型,我们这里只讨论最重要也最常用的两种 - 类图和时序图. 1. 类图 通过类图,我们可以很容易的了解代码架构,理清模 ...

  9. 使用PHP_UML生成代码的UML图

    在读别人代码的时候, 在没有详细文档的时候, 如何快速的看清整个代码的结构(类结构), 就成为了一个现实的问题. 今天我就介绍一种, 自动生成UML图的方法. 假设, 我有一个项目文件夹:laruen ...

  10. 机房收费系统之uml图——初版

    说起uml图,在我心中最难的当属类图无疑.虽然敲了三层的小例子,但真正让把三层和uml图结合起来,并且还要考虑设计模式的时候,总是让人有一种无从下手的感觉,不过还好,通过这半个多月的思考与探索(竟然用 ...

随机推荐

  1. hdu_4430,二分

    注意处理溢出 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...

  2. MySql创建指定字符集的数据库

    以创建字符集为utf8的数据库为例: CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREAT ...

  3. k-meas非监督聚类分析

    实验名称: k-meas非监督聚类分析   一.实验目的和要求 目的: 加深对非监督学习的理解和认识 掌握聚类方法K-Means算法的设计方法   要求:     根据聚类数据,采用k-Means聚类 ...

  4. <Sicily>Greatest Common Divisors

    一.题目描述 A common divisor for two positive numbers is a number which both numbers are divisible by. It ...

  5. 操作系统——第五章 输入输出(I/O)管理

    这就是SDT表和DCT表

  6. 几个提高效率的PHOTOSHOP秘密快捷键

    1.拖动选择 使用矩形选框工具,在画布上拖动(不要松开鼠标),这时按住空格键,然后移动鼠标,你会发现选区也跟着移动了. 2.左右流量文档 按住Cmd(Ctrl)键,上下滚动鼠标,你会发现文档的滚动条在 ...

  7. [POI2010]GIL-Guilds(结论题)

    题意 给一张无向图,要求你用黑白灰给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻:对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成 ...

  8. Ubuntu命令行快捷启动Pycharm

    我pycharm安装目录为/home/dell/pycharm-community-2018.1.2/bin.那么安装完成之后系统不会给pycharm添加系统路径,只有把终端切换到安装目录/home/ ...

  9. python的开发工具UliPad安装篇

    之前文章里写过一个搭建windows下搭建Selenium+Eclipse+Python环境,如今认为这个Eclipse太大了,太笨重了,重新启动又慢,像Python脚本轻级语言,不是必需用那么大的工 ...

  10. Linux能ping通IP,ping不通域名

    今天碰到个问题, 能ping通IP地址, ping不通域名, 一直以为是 DNS解析服务器的问题, 找了半天. 问题不在这里. [root@www postfix]# cat /etc/resolv. ...