九、MVC设计模式-复合模式
这章讨论复合设计模式:MVC设计模式
本章主题
- MVC设计模式简介
- UML类图剖析MVC设计模式
- Python3.6 代码实现真实用例
- MVC模式的优缺点
- 常见问答
1. 复合模式简介
多种设计模式可以同时使用并加以组合,以实现特定的设计解决方案。
复合模式不是同时使用的一组模式,而是一个问题的通用解决方案。
2. MVC模式
模型:声明一个存储和操作数据的类。
视图:声明一个类来构建用户界面和显示数据。
控制器;声明一个连接模型和视图的类。
客户端:声明一个类,根据某些操作来获取某些结果。
MVC模式的主要意图:
- 将数据和数据的展示隔离开来。
- 使类的维护和实现更加简单。
- 灵活改变数据的存储和显示方式,两者都是独立的,因此可以灵活修改。
3. MVC设计模式的UML 类图
class Model(object):
def login(self):
data = 'Got it!'
print('Model: Crunching data as per business login')
return data
class View(object):
def update(self, data):
print('View: Updating the view with results: ', data)
class Controller(object):
def __init__(self):
self.model = Model()
self.view = View()
def interface(self):
print('Controller: Relayed the Client asks')
data = self.model.logic()
self.view.update(data)
class Client(object):
print('Client: asks for certain information')
controller = Controller()
controller.interface()
4. MVC模式的优点
- 将软件应用程序分为3个部分:视图、模型和控制器;可维护、强制松耦合,并降低复杂性。
- 前端、后端独立开发。
- 可以更改模型或业务逻辑,而无需对视图进行任何更改。
- 也可以单独更改控制器。
- 有助于人员分工,专业性更强。
5. 常见问答
Q: 多个视图可以是映射多个模型吗?
A: 是的,通常你最终会遇到需要从多个模型整理数据并在一个视图中显示的情况。
一对一地映射在当今的网络应用程序世界中是非常罕见的。
6. 小结
MVC主要应用场景:网站开发,GUI桌面应用程序或需要松耦合的地方等。