面试学习资料整理

1.五分钟读懂UML类图

http://www.cnblogs.com/shindo/p/5579191.html

2.UML类关系(依赖,关联,聚合,组合的区别)

https://www.jianshu.com/p/eefa0b5b4922

2.1 关联

1、关联关系

关联关系又可进一步分为单向关联、双向关联和自关联。

(1)单向关联

我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

(2)双向关联

从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。

(3)自关联

自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。

2.2依赖--dependency

用带折线的箭头表示

  • 依赖其实定义非常模糊,所以使用依赖只应该是在其他关系无法表示的时候:
  • 依赖通常体现为调用一个其他所依赖类的方法
  • 在代码中往往体现为依赖类作为函数参数或者局部临时变量

举例:人依赖车 

2.3聚和--aggregation

UML中聚合关系用带空心菱形和箭头的直线表示。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在

2.4组合--composition

组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。比如下图:

显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。

总结:聚合和组合都属于包含的范畴,现实生活中的关系;比如 汽车包含引擎,头包含嘴;

  •  不同的是聚合,两个类/对象(现实中的事物)是彼此可以独立存在的;For Example: 汽车和引擎可以彼此独立存在的因此是聚合关系。
  • 组合是c中两个事物不能独立;For Example :头和嘴是彼此不能独立存在的

    依赖和关联区别:

  •   依赖:代码中通常体现为调用其他类作为参数或者局部变量
  •   关联:关联类通常作为一个类的成员变量存在

           

猜你喜欢

转载自blog.csdn.net/JHON07/article/details/82789825