如何用序列图显示一个class和另一个class之间的关系,它以class的实例作为输入?

How to show the relationship between a class and another class that takes the instance of the class's instance as an input with a sequence diagram?

我将使用我之前 中的相同示例并对其进行修改。

我有一个叫 House 的 class。这个class的实例是house.

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

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

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

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 序列图显示这两个 class 之间的关系?

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

序列图的目标不是显示class之间的关系,序列图描述Interaction 通过关注交换的 Messages 的顺序,以及它们在 生命线 (formal/2017-12-05 § 17.8 序列图)

根据您的代码 buildHouse 创建了 House 的新实例,因此有一个 object creation Message.因为 house 是一个局部变量实例立即丢失然后我们可以认为它立即被 Python 的垃圾收集器删除,所以 DestructionOccurrenceSpecification 用生命线底部的 X 形式的十字表示 (§ 17.4.4.2 DestructionOccurrenceSpecification)。

(我为 buildHouse 使用了 found message 因为来电者未知也不与你的问题相关)

House can exist without the Person class

如果您谈论 class,那肯定是因为 House 定义没有嵌套在 Person 中。

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

如果你参考你的 in my 我不使用 composition 所以删除 Person 的实例确实并不意味着删除 House.

的关联实例

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

删除