gpt4 book ai didi

oop - UML设计类图: Class with another class as attribute?

转载 作者:行者123 更新时间:2023-12-04 20:21:51 24 4
gpt4 key购买 nike

我很难弄清楚如何将某个场景建模为 UML 设计类图。

假设我有以下情况:

我有一个名为 CPoint 的类,它有两个属性:x 和 y(R2 平面中的坐标)。此外,我有一个名为 CLine 的类,它应该有两个 CPoint 作为属性。

这是非常直接的代码(我将在我的示例中使用 C++):

class CPoint{
float x;
float y;
//Constructor, gets and sets here
}

对于 CLine:
class CLine{
CPoint p1;
CPoint p2;
//Constructor, gets and sets here
}

现在我的问题是:我如何在 UML 中为这样的东西建模?

我想到了类似的事情:

Attempt 1

但是后来有人告诉我这违反了面向对象建模的原则,所以我这样做了:

Attempt 2

但这根本不能说服我。此外,我正在阅读有关设计模式的内容,并在阅读有关单例的信息时来到了这个 UML 设计:

Singleton design pattern

这让我觉得我最初的方法是正确的。此外,如果我将其视为 C++ 程序,我可以看到我的第一种方法是可以的。但是,在 Java 中,我仍然必须通过执行 new CPoint(0, 0) 来创建对象。在 CLine 的构造函数中。我真的很困惑。

那么,我该如何模拟这种情况呢?当我尝试模拟情况时,我是否可能过于具体?

提前致谢!这不是让我晚上 sleep

最佳答案

在 UML 中,关联或属性(属性)或多或少是相同的,因此它们都是正确的。

在大多数 UML 中 工具然而它们是不同的东西。

这里没有真正的规则,但有最佳实践。
我的 UML Best Practice: Attribute or Association说:

Use Associations for Classes and Attributes for DataTypes

关于oop - UML设计类图: Class with another class as attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27205917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com