我有一个框架,可以容纳2个视图。我想为它们使用一个通用控制器但不实例化2个控制器。我如何实现这一目标?辛格尔顿?发送控制器作为参数?
注意,控制器将保存临时数据(坏主意?),这些数据将通过命令发送出去。这就是为什么我只想要一个控制器对象。不要羞于提出其他设计理念。
第一个视图
Class ViewAlpha
def __init_(self, parent):
self.controller = Controller()
def on_click(self, event):
self.controller.do_this(event.data)
第二个视图
Class ViewBeta
def __init_(self, parent):
self.controller = Controller()
def on_click(self, event):
self.controller.do_this(event.data)
控制器的
Class Controller
def __init_(self):
self.client = Client()
def do_this(self, data):
self.client.store(data)
答案 0 :(得分:1)
将事物作为参数传递,就像在代码中一样,是这类问题的最常见解决方案。如果您只需要do_this
- 方法,您甚至可以通过该方法:
beta = ViewBeta(controller.do_this)