一尘不染

依赖和组成之间的区别?

java

这里的定义

相依性

一个类的结构或行为的变化会影响另一个相关的类,因此这两个类之间存在依赖关系。反之亦然。当一个类 包含另一个 类时,就会发生这种情况。

组成

组合是聚合的特例。以更具体的方式,受限制的聚合称为合成。当一个对象 包含另一个
对象时,如果所包含的对象在没有容器对象的情况下无法存在,则称为合成。

相依性

class Employee {
    private Address address;

    // constructor 
    public Employee( Address newAddress ) {
        this.address = newAddress;
    }

    public Address getAddress() {
    return this.address;
    }
    public void setAddress( Address newAddress ) {
        this.address = newAddress;
    }
}

组成

final class Car {

  private final Engine engine;

  Car(EngineSpecs specs) {
    engine = new Engine(specs);
  }

  void move() {
    engine.work();
  }
}

阅读 255

收藏
2020-12-03

共1个答案

一尘不染

可以在两个构造函数中看到差异:

  • 依赖性Address对象来自 外部 ,它分配在其他地方。这意味着AddressEmployee对象是分开存在的,并且仅 相互依赖

  • 组成* :在这里,您会看到 内部Engine创建了一个新对象。该对象是的一部分。这意味着,被 构成 的。 Car``Engine``Car``Car ***Engine

2020-12-03