在视图之间共享控制器

Sharing controller between views

我有一个包含 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)

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

beta = ViewBeta(controller.do_this)