标签:style blog class width int http
设计模式从第一次读程杰的大话设计模式和headfirst等相关书籍,然后开始关注相应模式的代码差不多有两年的时间了,从简单的理解到根据某些开发的需要去选择某种自己理解的模式,发下这是一个需要时间积累的过程和对模式理解的过程,对于模式的理解如果是学习面向对象的语言,我的建议还是先整理下类关系,希望下面的总结对园友们有所帮助,当然这些都可以从UML资料里去更加深入的研究。
UML里规定了类之间的关系:
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
6.组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;
标签:style blog class width int http
原文地址:http://www.cnblogs.com/qianthinkover/p/3704841.html