【发布时间】:2016-01-25 21:17:01
【问题描述】:
因此,在 Java 等语言中,在某些 MVC 模式中,使用接口来减少类之间的耦合是很常见的。
在python中使用函数指针来实现同样的事情是否合法?
假设我们的 MainFrame 只需要控制器的一个功能,你会在下面的代码中更改一些内容吗?是否存在一些潜在问题?
class MainFrame(object):
def __init__(self):
self._listeners = []
def fireEvent(self):
for l in self._listeners:
l()
def addListener(self, funcPtr):
self._listeners.append(funcPtr)
class Controller(object):
def __init__(self):
pass
def eventRised(self):
print "controller recived event"
def main():
m = MainFrame()
c = Controller()
m.addListener(c.eventRised)
m.fireEvent()
if __name__ == '__main__':
main()
程序的输出是:
controller recived event
【问题讨论】:
-
是的,这是可能的。您应该能够通过开槽继承来做到这一点
标签: python model-view-controller interface function-pointers