如何避免 GUI 和程序其余部分之间的循环依赖?
How to avoid a circular dependency between a GUI and the rest of a program?
我有两个类。一个是带有程序的 GUI,另一个实际上控制程序发生的所有底层操作。
class A(object): #GUI
def __init__(self, inst):
self.program = inst
def foo(self):
#Access B.a and B.b down here somewhere
class B(object):
a = []
b = []
def __init__(self):
self.GUI = A(self)
def bar(self):
self.GUI.foo()
这两个 类 之间存在非常明显的循环依赖关系,但我不是 100% 确定修复它的好方法。
编辑:程序需要来自 GUI 的输入才能正常运行
我没有看到循环依赖。只有 foo
曾经调用 self.inst.bar
.
才会发生这种情况
使用上面的代码片段完成以下运行:
b = B()
b.bar()
所以如果不是'recursive',那么'circular'在这种情况下是什么意思?
A 引用 B 和 B 也引用 A 并没有太大问题。但是您确实希望针对它们的交互方式制定策略。也许阅读一下 MVC:
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
我有两个类。一个是带有程序的 GUI,另一个实际上控制程序发生的所有底层操作。
class A(object): #GUI
def __init__(self, inst):
self.program = inst
def foo(self):
#Access B.a and B.b down here somewhere
class B(object):
a = []
b = []
def __init__(self):
self.GUI = A(self)
def bar(self):
self.GUI.foo()
这两个 类 之间存在非常明显的循环依赖关系,但我不是 100% 确定修复它的好方法。
编辑:程序需要来自 GUI 的输入才能正常运行
我没有看到循环依赖。只有 foo
曾经调用 self.inst.bar
.
使用上面的代码片段完成以下运行:
b = B()
b.bar()
所以如果不是'recursive',那么'circular'在这种情况下是什么意思? A 引用 B 和 B 也引用 A 并没有太大问题。但是您确实希望针对它们的交互方式制定策略。也许阅读一下 MVC:
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm