使一个类的每个实例了解另一类的一个特定实例的最佳方法是什么?

时间:2019-06-13 00:40:14

标签: python-3.x oop aggregation

预先感谢您的帮助,有点像是业余爱好者,并尝试使用OOP完成我的第一个大型项目。

我有四节课。其中三个类始终需要了解另一类的一个特定实例。

我以为继承是解决我的问题的方法,但很快意识到这不是-我认为聚合更合适吗?谁能告诉我这是否是最合适的实现方法?

class Foo:
    def __init__(self, some_data):
        self.data = some_data

class Bar:
    def __init__(self, foo_instance):
        self.foo = foo_instance

class Fizz:
    def __init__(self, foo_instance):
        self.foo = foo_instance

class Wizz:
    def __init__(self, foo_instance):
        self.foo = foo_instance

foo = Foo("foobar")
bar = Bar(foo)
fizz = Fizz(foo)
wizz = Wizz(foo)

还是应该在Foo类中定义Bar,Fizz和Wizz类?

1 个答案:

答案 0 :(得分:0)

这取决于您要实现的目标。成员表示具有关系。 Foo有一个Bar还是Bar有一个Foo

例如,Pet是否拥有所有者(Person)或Person是否拥有Pet?这取决于您将要做的事情:是要知道Pet的所有者是谁,还是想知道Pet的所有者Person