在视图之间共享控制器

时间:2015-06-15 09:58:51

标签: python design-patterns model-view-controller

我有一个框架,可以容纳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)

1 个答案:

答案 0 :(得分:1)

将事物作为参数传递,就像在代码中一样,是这类问题的最常见解决方案。如果您只需要do_this - 方法,您甚至可以通过该方法:

beta = ViewBeta(controller.do_this)