如何在UML中的类构造函数中建模新类

如何在UML中的类构造函数中建模新类,uml,Uml,我正在用UML建模一个软件。我有一个带有Address属性的类Person,它是一个单独的类。 每次有新人时,我都需要有一个Address对象,所以我将它写在类Person构造函数中。 但是,此人可以将其地址留空,因此在我的mongo JSON对象中,我将有: { id:“1a07b40t9748c2a90” 全名:“X Y”, 地址:{}} class Person { String id; String fullName; Address address;

我正在用UML建模一个软件。我有一个带有Address属性的类Person,它是一个单独的类。 每次有新人时,我都需要有一个Address对象,所以我将它写在类Person构造函数中。 但是,此人可以将其地址留空,因此在我的mongo JSON对象中,我将有:
{
id:“1a07b40t9748c2a90”
全名:“X Y”,
地址:{}
}

class Person {
    String id;
    String fullName;  
    Address address;

    public Person(){
        this.address = new Address();
    }
}

class Address {
    String city;
    String state;  
    String country;
}

我应该如何用UML建模

虽然这实际上太琐碎了,但您可以:


只有一个
地址
。我没有完整地建模属性。不确定范围(
地址
可能是私人的)。

虽然您可能有地址为空的人,但这些空地址仍然是
地址
的实例。因此,地址端的关系是一种强制关系

在Person方面,关系是可选的,因为可以在Person上下文之外创建Address实例。在鱼尾纹符号中,这是结果:

如果您确信地址除了作为个人的一部分之外永远不会被实例化,那么您可以将双方都设置为一个必填项


我使用了鱼尾纹符号,因为这是您在评论中要求的,但这不是UML符号。

您的问题是什么?你想做什么样的模特?行为还是类?我想用鱼尾纹关系符号来建模类图。这两个类别之间的关系是:-一个是强制性的,一个是强制性的?或者-一对一可选?如果您对其中一个答案感到满意,请将其标记为已接受。否则,请解释您不满意的原因。是的,地址不会在Person之外实例化;谢谢你的回答。我还有最后一个问题,为什么你说鱼尾纹符号不是UML符号?UML符号是在UML规范中定义的。最新版本(2.5.1)可从OMG网站下载。您可以验证鱼尾纹符号不是UML。相反,UML使用所谓的多重性。例如,“一个必填项”由多重性
1
表示。请参见qwerty__so给出的答案,以获取示例。