不得不承认python是一门强大的语言,也因此才能hold得住人工智能的逻辑实现
MVC的妙处:只要Model的数据结构内容和结构明确,Controller对抽象的View即前面明确的Model的控制逻辑是几乎不怎么改动的,那么。
1、任意替换View的功能已不加一行代码给你奉献上
2、一旦Model的数据更新了,View就会通过Controller给你自动刷新视图数据
class Model:
def __init__(self,data):
self.data = data
def get_data(self):
return self.data
def set_data(self,new_data):
self.data = new_data
class View:
def __init__(self,model):
self.model = model
def display(self):
# View Grabs model data and updates itself
print("Model data:",self.model.get_data())
# View alerts Controller of a particular event!
def view_event(self):
print("to change model value.")
class Controller:
def __init__(self,model,view):
self.model = model
self.view = view
def alert_by_view(self):
self.view.view_event()
# Controller updates the model
self.model.set_data("hhh")
def update_view(self):
new_data = self.model.get_data()
self.view.display()
# models alerts view that it has change
self.model.set_data(new_data)
m = Model("9527")
v = View(m)
c = Controller(m,v)
c.update_view()
c.alert_by_view()
c.update_view()
输出:
Model data: 9527
to change model value.
Model data: hhh
在这个例子中,Model类有一个数据成员和一个用于获取和设置数据的方法。View类有一个Model对象,并有一个用于显示Model数据的方法。Controller类也有一个Model对象和一个View对象,并有一个用于更新View的方法。Controller的方法首先获取Model的新数据,然后显示旧的数据,最后设置新数据。这样,Controller就可以在不改变Model和View的情况下修改View。
上述MVC
图,跟python
代码是完全吻合的,您品