首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UML与泛型和可空字段的关系

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

Stack Overflow用户
提问于 2016-08-29 01:03:12
回答 2查看 270关注 0票数 0

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

代码语言:javascript
复制
class Foo {
    Predicate<Bar> validator;
}

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

代码语言:javascript
复制
class Foo {
    SomethingThatHasA<Bar> barContainer;
}

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

代码语言:javascript
复制
class Foo {
    Bar bar; // may be null
}

(3) (这在C++中可能比在其他地方更有意义)如果类Foo通常由Bar对象组成(即,没有Bar就不能生存),但允许有一个默认构造函数,该构造函数将其所有字段置零/作废,作为一种空白石板状态,直到稍后填充才会有用处,Foo是否仍然与Bar有组合关系

代码语言:javascript
复制
class Foo {
  private:
    Bar* bar; // or possibly just a non-pointer Bar
  public:
    Foo() : bar(nullptr) {}
    Foo(/* whatever */) : bar(/* something */) {}
};
EN

回答 2

Stack Overflow用户

发布于 2016-09-05 17:56:54

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

(2)至少一个协会。如果Foo和Bar的含义是这样的,那么Bar可以被认为是Foo的一部分,那么您可以使用聚合(开放菱形),例如在汽车和发动机的情况下。此外,如果Foo引用的Bar实例的生存时间不长于其Foo,则可以使用组合(填充菱形),即使并非每个Foo都有Bar,也不是每个Bar都包含在Foo中。

(3)是

票数 1
EN

Stack Overflow用户

发布于 2016-08-29 01:38:02

(0)无- Foo只知道通过验证器来验证Bar的实例。

(3)是。具有无效Bar%s的Foo-s属于不死类别(因为...即没有酒吧就活不下去)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39193730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档