如何用序列图显示一个类和另一个将该类实例的实例作为输入的类之间的关系?

2024-09-24 04:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我将使用上一个question中的相同示例并对其进行修改

我有一个名为House的类。这个类的实例是house

class House:
    def __init__(self, steel, money):
        self.steel = steel
        self.money = money

    def housePlan():
        houseHeight = self.steel/self.money
        houseEdgeLength = self.money

我有另一个类叫做Person。该类获取多个输入并创建House的实例House可以在没有Person类的情况下存在。

class Person:
    def __init__(self,name, steel, money):
        self.name = name
        self.steel = steel
        self.money = money
   
    def buildHouse():
        house = House(self.steel, self.money)

如何用UML序列图显示这两个类之间的关系


Tags: 实例nameself示例initdefclasshouse
1条回答
网友
1楼 · 发布于 2024-09-24 04:18:29

How can I show the relationship between these two classes with UML sequence diagrams?

序列图的目标不是显示类之间的关系,序列图通过关注交换的消息的序列,以及生命线formal/2017-12-05)上相应的发生规范,来描述交互§17.8序列图

从您的代码buildHouse创建House的新实例,因此有一条对象创建消息。因为 Houth是一个局部变量,所以实例立即丢失,然后我们可以认为它是由Python的垃圾回收器立即删除的,所以一个破坏事件的特殊化< EEM >以一个X的形式在生命线的底部被描绘出来。p>

enter image description here

(我在buildHouse中使用了查找消息,因为呼叫者在您的问题中是未知的,也不相关)

House can exist without the Person class

如果您谈到类,肯定是的,因为House定义没有嵌套在Person

如果你在全球范围内谈论实例,没有什么可以说只有可以实例化房子,所以也是

如果您在myanswer中引用您的previous question,我不会使用合成,因此删除个人的实例并不意味着删除房屋的关联实例

但是在buildHouse中,House的新实例立即丢失,因为它既没有返回,也没有保存在全局变量中,也没有保存在Person的属性中,然后将被垃圾箱删除

相关问题 更多 >