标签:
Interface(接口)
Inherit(继承)
Association(关联) 当一个类需要”知道”另一个类时,可以用关联关系,给定一个连接两各类的关联,可以从一个类的对象导航到另一个类的对象
关联和依赖的区别:
从类之间关系的强弱程度来分,关联表示类之间的很强的关系;依赖表示类之间的较弱的关系;
从类之间关系的时间角度来分,
关联表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久
化”的,或者说需要保存到数据库中的。比如学生管理系统中的Student类和Class(班级)类,一个Student对象属于哪个Class是一个重
要的业务关系,如果这种关系不保存,系统就无法管理。
另外,依赖表示类之间的是一种“临时、短暂”关系,这种关系是不需要保存的,比如Student类和StuEditScreen(学生登录界面)类 之间就是一种依赖关系,StuEditScreen类依赖Student类,依赖Student对象的信息来显示编辑学生信息。
Aggregation(聚合) 表示一种弱"拥有"关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分。
使用集合属性表达聚合关系,当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关 系,强调的是整体与部分之间的关系。与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才 能更好的区分两者的区别。聚合关系(Aggregation):是关联关系的一种,是强的关联关系。聚合是整体与个体之间的关系。
Composition(组合)表示一种强"拥有"关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。
Dependency(依赖) 一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。
依赖一般情况下是以下几种情况之一:
a、ClassA中某个方法的参数类型是ClassB; 这种情况成为耦合;
b、ClassA中某个方法的参数类型是ClassB的一个属性; 这种情况成为紧耦合;
c、ClassA中某个方法的实现实例化ClassB;
d、ClassA中某个方法的返回值的类型是ClassB;
如果出现了上述四种情况之一,两个类很有可能就是“依赖”关系。
===
从使用的频率来看,关联(包括聚合和组合)关系是使用最为广泛的,其次是依赖和继承
设计类之间的关系是遵循的原则:
首先判断类之间是否是一种“关联”关系,
若不是再判断是否是“依赖关系”,
一般情况下若不是关联,就是依赖关系
标签:
原文地址:http://www.cnblogs.com/xanadu123/p/4543418.html