• UML中依赖/泛化/关联/实现/聚合/组合的C#实现


         这几天要写点文档用到UML的类图,重新再次捡起以前的知识,多多少少有点总结,在这里记录下来,也算是以备后用吧。

        在这里推荐大家可以尝试着用用以下我推荐的二种UML工具:

    • Visual.UML.Developer.Edition.v5.1(感觉不错,功能强大,不过收费)
    • StarUML(开源免费,05年之后就没有再维护更新过,韩国人开发,符合亚洲人的习惯)

        在UML类图中,类与类之间的关系主要有以下几种:

    • 泛化(Generalization)

         所谓的泛化就是我们最常用的继承关系

    image

       1:      public class Employee
       2:      {
       3:          
       4:      }
       5:      public class SaleEmployee:Employee
       6:      {
       7:          
       8:      }

    • 依赖(Dependency)

    依赖关系是指一个类对别一个类的依赖,比如说Employee类中有一个方法叫做TakeMoney(Bank bank)这个方法,在这个方法的参数中用到了Bank这个类,那么这个时候可以说Employee类依赖了Bank这个类,如果Bank这个类发生了变化那么会对Employee这个类造成影响。

       1:      public class Employee
       2:      {
       3:          public long TakeMoney(Bank bank)
       4:          {
       5:              return long.MaxValue;
       6:          }
       7:      }

    Snap2

    • 关联(Association)

          关联关系有点边界模糊和依赖有点像,但又完全不像。关联是指一个类用到了另外的一个类,但不依赖。还是用代码来表达比较贴切

       1:      public class Shcool
       2:      {
       3:          public Student stu;
       4:      }
       5:      public class Student
       6:      {
       7:          
       8:      }

    Snap3

    • 聚合(aggregation)

            聚合是一种单向关系,聚合与关联的区别在于聚合的两个类之间的关系在概念层次上不是一个级别的,一般来说聚合中的类关系总是一个类比别一个类要高级一些,而关联基本上是平级的

       1:      public class Car
       2:      {
       3:          public Engine engine;
       4:          public Wheel wheel;
       5:      }
       6:      public class Engine
       7:      {
       8:          
       9:      }
      10:      public class Wheel
      11:      {
      12:          
      13:      }

    Snap4

    • 合成(Composition)

    合成是一种特殊的聚合形式,它是提类与类之间的联系是非常密切的,少了那一个也不行。

    Snap5

    • 实现(Realization)

    简单的说就是接口

    Snap6

     

  • 相关阅读:
    day01-python基础
    python3.5爬虫实例:根据网站的反爬虫策略,启用代理来防止爬虫被禁用
    python3.5爬虫实例:根据城市名称来获取该城市最近七天的天气预报
    python3.5爬虫基础urllib结合beautifulsoup实例
    python3.5爬虫基础urllib实例
    面向对象相关知识及常用操作(二)
    面向对象相关知识点及常见的操作
    常用的基础模块介绍
    利用正则表达式来实现求一个数学表达式的和
    正则表达式的方法及其匹配规则
  • 原文地址:https://www.cnblogs.com/chu888chu888/p/1359190.html
Copyright © 2020-2023  润新知