UML补充学习(关联、依赖、聚合、组合、泛化)

有幸看到一篇不错的文章,出自http://student.csdn.net/space.php?uid=1394199&do=blog&id=51397&page=2#content

由于作者不允许转载,因此仅附上链接并摘取了其中部分重点内容支持原创,坚持学习。

1、关联(Association)。指类之间的引用关系。是实体域对象之间最普遍使用最广泛的一种关系,分为一对一,一对多,多对多。代码中如何体现?在类A中,引入类B的对象作为A类的一个属性。这样就建立了一对一或一对多关联。

2、依赖指类之间的访问关系。A类中访问了B类的方法属性,或者A类负责实例化B类,则可以说A类依赖于B类

3、聚合。强调整体和部分的关系,也就是has-a的关系,整体和部分是可以分离的,有各自的生命周期(是一种比较弱的联系)。

4、组合。也就整体和部分的关系,但是两种不可分割的,任何一个生命周期结束则另一个也结束(是一种强联系)。

5、泛化(Generalization)。在面向对象里面叫做"继承"关系。两种是派生关系,也可以说是父子关系,或者称为"is-a"。

补充:
其实,依赖关系和关联关系有点像,比较难分开。我认为,关联关系比较弱,仅限于对象属性的操作(get,set)。依赖关系较强,比如方法调用(如果没有这个方法,无法完成某项活动)
附上另一篇:http://www.blogjava.net/hongzionline/archive/2007/09/27/148685.html

相关文章

适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题...
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结...
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容...