我很难弄清楚如何将某个场景建模为 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 中为这样的东西建模?
我想到了类似的事情:
但是后来有人告诉我这违反了面向对象建模的原则,所以我这样做了:
但这根本不能说服我。此外,我正在阅读有关设计模式的内容,并在阅读有关单例的信息时来到了这个 UML 设计:
这让我觉得我最初的方法是正确的。此外,如果我将其视为 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/