MVC : python实现

不得不承认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实现_第1张图片

上述MVC图,跟python代码是完全吻合的,您品

你可能感兴趣的:(python语言,mvc,python)