参考教程:MVC 模式 | 菜鸟教程
一、概念
MVC 模式代表 Model-View-Controller 模式。
Model:代表一个存取数据的对象,也可以带有逻辑,在数据变化时通知 Controller。
View:负责数据的可视化。
Controller:作用于 Model 和 Controller ,控制数据流向 Model,在数据发生变化时更新 View。
二、实现
使用 Python 实现 MVC 模式,类图如下。其中 Model 为 Student 类,Controller 和 View 分别为两个类。
使用 Python 实现上面的设计,代码如下。
Student
# Student class as model
class Student():
_name = ""
_id = ""
def set_name(self, name):
self._name = name
def get_name(self):
return self._name
def set_id(self, id):
self._id = id
def get_id(self):
return self._id
# View just show the data on terminal
class StudentView():
def print_student(self, name, id):
print("Student")
print("name: {}".format(name))
print("id: {}".format(id))
# Controller update the View when module change
# make data flow to module
class StudentController():
def __init__(self, module, view):
self._module = module
self._view = view
def get_student_name(self):
return self._module._name
def set_student_name(self, name):
self._module._name = name
def get_student_id(self):
return self._module_name
def set_studetn_id(self, id):
self._module._name = id
def update_view(self):
self._view.print_student(self._module._name, self._module._id)
# Simulate fetching data from a database
def retrieve_student_from_database():
student = Student()
student.set_name("Robert")
student.set_id("10")
return student
if __name__ == '__main__':
module = retrieve_student_from_database()
view = StudentView()
controller = StudentController(module, view)
controller.update_view()
controller.set_student_name("Alice")
controller.update_view()