当我阅读《统一建模语言参考手册第二版》时,我发现:
属性通常用于纯数据值而没有身份,例如数字和字符串。
关联用于连接具有身份的对象之间的关系。
我想知道是否有简单的例子来解释什么是具有/没有身份?
当我阅读《统一建模语言参考手册第二版》时,我发现:
属性通常用于纯数据值而没有身份,例如数字和字符串。
关联用于连接具有身份的对象之间的关系。
我想知道是否有简单的例子来解释什么是具有/没有身份?
class User {
String firstName;
String lastName;
Address address;
}
class Address {
String streetName;
int streetNumber;
String postalCode;
}
识别对象实例只意味着该实例与其他实例有关联。例如,如果一个阀门具有可以在软件中控制的电磁铁,则可以将其建模为阀门与电磁铁之间存在关联。程序员想要打开一个阀门,然后找到该阀门的电磁铁(这可能发生在初始化时)。这称为遍历关联。然后程序员就拥有了指向电磁铁的指针(至少在C++中是这样),并且可以调用电磁铁的激活方法。
如果电磁铁没有任何被找到的方式,则不存在关系可供遍历。例如,可能存在一个电磁铁服务,在初始化时提供电磁铁ID给阀门。然后阀门可能会调用一个函数,如:
energizeSolenoid(solenoidID);
阀门和电磁铁之间将没有任何关联。