标签:关系 engine Car 关联 public 之间 class
类之间的依赖、关联、聚集、泛化、实现关系
依赖(Dependence):当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。
关联(Association):表示类与类或类与接口之间的依赖关系,表现为“拥有关系”;具体到代码可以用实例变量来表示。
聚集(Aggregation):属于是关联的特殊情况,体现部分-整体关系,是一种弱拥有关系;整体和部分可以有不一样的生命周期;是一种弱关联。
泛化(Generalization):表示类与类之间的继承关系、接口与接口之间的继承关系。
实现(Implementation):表示具体类对接口的实现。
依赖:
用虚线箭头表示,有以下三种情况
1、A类是B类中的(某个方法)的局部变量
2、A类是B类中的一个参数
3、A类向B类发送消息,从而影响B类发生变化
public class Driver{
public void drive(Car car){
car.move();
}
}
public class Car{
public void move(){
}
}
关联:
类与类最常用的一种关系,用实线表示。通常将一个类作为另一个类的属性,在使用类图表示关联关系时可以在关联线上标注角色名。1) 双向关联: 默认情况下,关联是双向的。
public class Customer{
private Product[] products;
……
}
public class Product{
private Customer customer;
……
}
聚集:
表示部分和整体的关系,部分和整体可以分开。
public class Car {
private Engine engine;
public Car(Engine engine) {
this.engine = engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
……
}
public class Engine {
……
}
泛化:
也就是继承,空心箭头表示
标签:关系,engine,Car,关联,public,之间,class 来源: https://www.cnblogs.com/zw-2371blog/p/12500385.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。