有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UML与泛型和可空字段的关系

(0)当类Foo包含类型为Predicate<Bar>或类似的字段时,FooBar的关系是什么

class Foo {
    Predicate<Bar> validator;
}


(1) 如果一个类Foo包含一个Bar的泛型容器(不一定是一个列表;可能是一个包含一个Bar)的框),那么FooBar的关系是什么

class Foo {
    SomethingThatHasA<Bar> barContainer;
}


(2) 如果一个类Foo有一个类型为Bar的可空成员,那么Foo是否仅仅依赖于Bar,与之关联,或者是Bar的组合

class Foo {
    Bar bar; // may be null
}


(3)(如果C++中的一个类{{CD1}}通常由一个^ {CD4}对象组成(即不能没有^ ^ {CD4}}),但它可以有一个默认构造函数,它将所有字段作为一种空白板岩状态进行零化/取消,直到填入之后才可用,这是在C++中比其他地方更具意义的。Foo是否仍然与Bar存在组合关系

class Foo {
  private:
    Bar* bar; // or possibly just a non-pointer Bar
  public:
    Foo() : bar(nullptr) {}
    Foo(/* whatever */) : bar(/* something */) {}
};

共 (1) 个答案

  1. # 1 楼答案

    (0)和(1):UML依赖关系在这里是合适的:一个从Foo指向Bar的虚线箭头

    (2)至少有一个协会。如果Foo和Bar的含义是这样的,那么Bar可以被视为Foo的一部分,那么您可以使用聚合(开放菱形),例如在汽车和发动机的情况下。此外,如果Foo所指的酒吧实例的寿命不比他们的Foo长,那么你可以使用合成(填充钻石),即使不是每个Foo都有酒吧,即使不是每个酒吧都包含在Foo中

    (3)是的