Python UIアーキテクチャ編(UI Architecture)
PythonのUIアーキテクチャについて解説します。
目次
- MVC(Model-View-Controller)
- MVP(Model-View-Presenter)
- MVVM(Model-View-ViewModel)
1. MVC(Model-View-Controller)
MVCは、アプリケーションをモデル(Model)、ビュー(View)、コントローラ(Controller)の3つのコンポーネントに分割するアーキテクチャです。
MVC.py
# 簡単な例
class Model:
def __init__(self):
self.data = "Hello, MVC!"
class View:
def display(self, data):
print(data)
class Controller:
def __init__(self, model, view):
self.model = model
self.view = view
def update_view(self):
self.view.display(self.model.data)
model = Model()
view = View()
controller = Controller(model, view)
controller.update_view() # Output: Hello, MVC!
2. MVP(Model-View-Presenter)
MVPは、MVCに似ていますが、ビューの論理をプレゼンター(Presenter)に移すことで、ビューのテストを容易にするアーキテクチャです。
MVP.py
# 簡単な例
class Model:
def __init__(self):
self.data = "Hello, MVP!"
class View:
def display(self, data):
print(data)
class Presenter:
def __init__(self, model, view):
self.model = model
self.view = view
def update_view(self):
self.view.display(self.model.data)
model = Model()
view = View()
presenter = Presenter(model, view)
presenter.update_view() # Output: Hello, MVP!
MVVM(Model-View-ViewModel)
MVVMは、モデル(Model)、ビュー(View)、およびビューの状態とロジックを管理するビュー・モデル(ViewModel)で構成されるアーキテクチャです。
MVVM.py
# 簡単な例
# 簡単な例
class Model:
def __init__(self):
self.data = "Hello, MVVM!"
class ViewModel:
def __init__(self, model):
self.model = model
def get_data(self):
return self.model.data
class View:
def display(self, data):
print(data)
model = Model()
view_model = ViewModel(model)
view = View()
view.display(view_model.get_data()) # Output: Hello, MVVM!
最後までお読みいただきありがとうございました。