java - 有必要不修改作文吗?

标签 java oop uml

我遇到了 this在寻找一种在 Java 中实现聚合和组合的方法时回答。这是回答者的组合实现 -

final class Car {

  private final Engine engine;

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

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

我想问一下是否必须将引擎声明为私有(private) final 才能使其成为有效组合?组合是否也意味着引擎的属性在其生命周期内永远不会改变?

最佳答案

简答:

不!

长答案:

UML 组合只是意味着组合实例的生命周期与其上级实例紧密耦合。所以没有不允许交换或修改复合实例的约束。


但请牢记聚合和组合之间的区别!

聚合:

  • Supervisor -> Student (如果supervisor辞职了,sudent还是可以完成学业的)
  • 公司 -> 员工

组成:

  • 建筑 -> 房间 (如果建筑被摧毁,房间也会被摧毁)
  • 公司->部门

关于java - 有必要不修改作文吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872973/

相关文章:

java - "error: cannot find symbol"在 flutter 中为 Android 构建时

php - 当我在bind_param上工作时,我正在用php的OOPs概念制作一个用于图像上传的函数,我不知道图像s或i

PhpStorm Trait 方法自动完成不起作用

uml - '0..°' 在 UML 中是什么意思?

uml - 如何指定类的唯一标识符

uml - 空 UML 类的正确图形表示是什么?

java - Android 上的 startActivityForResult

java - 如何从android中的java获得对 "root-only"文件夹的root访问权限

java - 计算所有可能的组合

java - 扩展接口(interface)更改方法签名