UML中类关系之---依赖关系及其代码的表现形式

本文章转载自:http://www.cnblogs.com/DebugLZQ/archive/2013/05/13/3066715.html

么是类?

将某类东西归纳在一起,可以成为一个类。

类有很多种提炼角度,需要根据系统地目标、业务的场景,选取合适的角度对事物进行归纳。

什么是类图?

类图可能是UML中使用的最多的一种图。

和其他图一样,类图的基本语法并不复杂,可能一两天就能掌握,但是真正做到灵活的使用类图,可能需呀多年的功力。

类图是锻炼OOA(OO Analysis)和OOD(OO Design)思想的重要工具,有助于OOA、OOD思想的提升。

本篇博文,重点讲述类图中类与类之间的关系以及这种关系在代码中的实现形式。写作本文的原因是:网上关于UML类图的语法规则等的资料很多,但是涉及到关系在代码中实现形式的文章却很少。这是很容易理解的:UML语法规范什么的各种书上导出都是,网页上的也很多都是对各种语法规范的Copy;而类之间的关系反应到代码层面需要加入个人的理解。两者的区别是一个不需要动脑子,Copy过来就行,而另一个需要动脑子。

类与类之间的关系

类与类之间的关系可以根据关系的强度依次分为以下五种:

依赖关系(Dependency)---关联关系(Association)---聚合(Aggregation)---组合(Composition)---泛化(Generalization)

1.依赖关系(Dependency)

依赖关系使用虚线加箭头表示,如下图所示:

 

 这个例子可能不太好(Animal体内有Water,),换一个:

解释以下:Person 和 Computer之间是没有关系的,但是由于偶尔的需要,Person需要使用Computer,这时Person就依赖于Computer.

依赖关系是五种关系中耦合最小的一种关系。

类A要完成某个功能必须引用类B,则类A依赖类B。C#不建议双向依赖,也就是相互引用。

上述依赖关系在代码中的表现形式:这两个关系类都不会增加属性。

那么,Person类如何使用Computer类呢?有三种方式:

依赖关系的三种表现形式:

1.Computer类是public的,Person类可以调用它。

2.Computer类是Person类中某个方法的局部变量,则Person类可以调用它。代码如下:

Person有一个Programing方法,Computer类作为该方法的变量来使用。

注意Computer类的生命周期,当Programing方法被调用的时候,才被实例化。

持有Computer类的是Person类的一个方法,而不是Person类,这点是最重要的。

3.Computer类作为Person类中某个方法的参数或返回值。

Computer类被Person类的一个方法所持有,生命周期随着方法执行结束而结束。

在依赖关系中,必须使用这三种方法之一.

你可能感兴趣的:(C/C++,设计模式)