Python中有没有一个好的设计模式来处理这种类关系



所以假设我有一个类a,而类B可以将类a作为其成员,并使用类a的功能来完成这项工作,比如这个

class B:
def __init__(self, A):
self.A = A
def do_something(self):
# some other jobs ....
self.A.do_the_job()

这是一个简单的设计。然而,在我的情况下,类A也可以在B之外访问和修改,那么这个设计有点奇怪,因为虽然A是B的成员类,但实际上A可能在B之外改变其状态。因此,我将其更改为这个设计

class B:
def __init__(self):
pass
def do_something(self, A):
# some other jobs ....
A.do_the_job()

它绝对是完美的,唯一丑陋的是,现在每次当我调用B.do_something时,我都需要传递类A作为它的参数。实际上,类B还有其他几个函数也将使用类A。

我想知道是否有更好的设计模式来处理这种情况?

很简单:

class A:
def do(self):
print(“Hello from A”)
class B:
def run(self):
A().do()
print(“Now in B”)

因此,是的,您可以通过这种方式访问另一个类中的一个类。记住,如果你的类在不同的文件中,你必须使用这样的行:

from mymodule import A

它也能正常工作

最新更新