我很难弄清楚如何将特定场景建模为 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 的构造函数中。我对此真的很困惑。
那么,我该如何模拟这种情况呢?当我尝试模拟这种情况时,我是否可能太具体了?
提前致谢!这让我晚上无法入睡