やること
- Viewはコンソールから入力されたテキストをControllerに渡す
- Controllerは入力されたテキストをModelに書き込む
- オブザーバーパータンでModelの変更を検知してViewを更新する
コード
class Model:
def __init__(self):
self.__observer = None
self.__text = None
def add_observer(self, observer):
self.__observer = observer
def notify_observer(self):
self.__observer.update(self)
@property
def text(self):
return self.__text
@text.setter
def text(self, text):
self.__text = text
self.notify_observer()
class View:
def input(self):
return input("Enter text: ")
def update(self, model):
print(model.text)
class Controller:
def __init__(self):
self.model = Model()
self.view = View()
self.model.add_observer(self.view)
def start(self):
self.model.text = self.view.input()
if __name__ == '__main__':
Controller().start()
参考資料
やはりお前らのMVCは間違っている
やはりおまえらの MVC は間違えている in バックボーンジェーエス
「MVCの勘違い」について、もう一度考えてみる
実践Python3
最後に
おかしな点,不明な点ありましたら遠慮なく指摘して下さい.