类间关系

  • 关联:一个类中含有另一个类的属性,并通过该属性调用其方法,两个类是平等的。比依赖的耦合性更强,在类图中用实线带箭头表示该关系。指向方向:从关联发起方指向被关联方(可单向或双向)
Public class User {
	private Light light;
	
	public User (Light light) {
		this.light = light;
	}
	
	public void handle () {
		light.turnOn();
	}
}

Public class Light {
	public int turnOn() {
		return 1;
	}
	
	public int turnOff() {
		return -1;
	}
}
  • 依赖:将另一个类的对象固化在方法内部。比如一个类通过传入另一个类的对象为参数调用其方法。关系比较弱,在类图中用虚线带箭头表示该关系。- 指向方向从使用者指向被依赖者
Public class User {
   public void handle (Light light) {
   	light.turnOn();
   }
}

Public class Light {
   public int turnOn() {
   	return 1;
   }
   
   public int turnOff() {
   	return -1;
   }
}
  • 聚合(has-a):体现的是整体与部分的拥有关系。与关联的区别在与关系上,关联是平等的,而聚合是一种整体和部分的关系。部分可以被其他类使用。部分和整体的生存期不一致。在类图中,空心菱形指向整体,箭头指向部分。

  • 组合(contains-a):关系比聚合更强,称为强聚合。部分只会被整体使用,不会被其他类使用。部分和整体的生存期一致。在类图中,实心菱形指向整体,箭头指向部分。

耦合性排序:继承 > 组合 > 聚合 > 关联 > 依赖

posted @ 2026-09-04 22:37  spotgalaxy  阅读(4)  评论(0)    收藏  举报