UML大战需求分析阅读笔记——03

  什么是面向过程的?什么是面向对象的?这个疑问在我刚入学学习C++的时候就有了,当时什么都不懂,遇见的全部都是闻所未闻的新名词、新概念,搞得自己一头雾水,今天看到第三章的开头语时发现了一种很有趣很通俗的说法:c语言是面向过程的语言,而C++是面向对象的语言,他们之间有什么不同呢?c++有类(class)而C没有。

  我只是一个大学生,学计算机才三年,让我很清楚的讲出什么是面向过程的,什么是面向对象的这个我真的无法说出。但就我个人的理解来说面向对象的程序设计是一种理念,一种方法,一种将现实事物尽可能的抽象化进行代码模拟的思想。当一个程序很简单的只需要计算1+1时自然不必如此麻烦,但当功能多样之后,普通的几行代码,甚至稍复杂些的函数都已经满足不了我们的需要时,我们引入了类的概念,一个即有方法,又有属性的集合体,这就更加接近了现实中的事物,在交互中就可以实现更为复杂的功能。

  在编程中,建一个类很容易,但是从哪些方面分类就是需要反复推敲的了,每一个类应有能表现她独立特点的关键属性,那些无特别意义的属性可不在类中进行标记。实际工作中,我们往往需要将需求调研中了解到的所有业务对象、人物列出来,找好她们的关系,反复推敲才能得到合适的业务模型。

  在UML中类的关系有独特的表达形式,下面会一一讲解:

  1、直线(关联)关系:

    这种关系一般是在刚开始觉得这两个类有关系,但还不能确定具体是什么关系时使用,而且可以在线的两端标记以确定两者的对应,如下图所示:

           

          

  2、包含关系

    包含关系如下表示:   

    包含关系有两种,弱包含(空心)和强包含(实心)。弱包含表示如果部门没了员工也可以存在,强包含表示部门没了,员工也将不存在。

  3、继承(泛化)关系

    

    像例子中,讲师和学生都继承了员工,因为老师和学生在本质上都是公司员工,都有员工属性,在UML中则称"讲师泛化了员工","学生泛化了员工"。

   4、依赖关系

    

    例子中烟鬼依赖香烟,这种意义上,烟鬼就算离开了烟也是能够生存的。在业务中通常表示“烟鬼需要香烟来协助才能完成某项任务”。

    5、递归关系

      以上是一些比较基础的类图关系的表示方式,那么现在来点难度,我问你一个问题,文件和文件夹是啥关系?一般你会画出如下的图:

    

    但是文件夹里也可以有文件夹啊,文件夹里面的文件夹也可以有文件夹啊,这个要怎么表示呢?

    先想一想再看答案:

 

 

 

           

    想到了吗?不只包含关系可以递归,关联关系也是可以的。

 

    

转载于:https://www.cnblogs.com/hehejeson/articles/5966348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值