您当前的位置: 首页 >  彭世瑜 Python

Python:设计模式之模型-视图-控制器-MVC复合模式

彭世瑜 发布时间:2019-06-23 09:17:23 ,浏览量:1

复合模式: 将两个或更多个模式组合成解决常见或普遍性问题的解决方案

MVC模式工作机制

模型,提供数据和业务逻辑 视图,负责数据展示 控制器,模型和视图的粘合剂

MVC模式术语

模型:声明一个存储和操作数据的类 视图:声明一个类来构建用户界面和显示数据 控制器:声明一个连接模型和视图的类 客户端:声明一个类,更具某些操作来获得某些结果

MVC模式应用场景

1、当需要更改展示方式而不更改业务逻辑 2、多个控制器可以用于使用多个视图来更改用户界面上的展示 3、再次重申,当模型改变时,视图无需改动,因为它们是相互独立的

MVC详细介绍

1、模型-了解应用程序的情况 模型是应用程序的基石,它独立于视图和控制器,而视图和控制器则依赖于模型

2、视图-外观 视图用来将数据展示到接口上,可以独立开发,但不应该包含任何复杂的逻辑 逻辑应该放在控制器或模型中

3、控制器-胶水 控制器用来控制用户在界面上的交互 控制器不应该进行数据库调用或参与数据展示 控制器应该作为模型和视图之间的粘合剂,并且尽可能薄

MVC模式的优点

1、使用MVC,开发人员可以将软件应用程序分为3个主要部分:模型,视图,控制器 有助于提高可维护性,强制松耦合,并降低复杂度 2、MVC允许对前端视图进行独立更改,而后端逻辑无需任何修改或只需进行很少的更改 因此,开发工作仍然可以独立进行 3、类似地,可以更改模型或业务逻辑,而无需对视图进行任何更改 4、可以更改控制器,而不会对视图或者模型造成任何影响 5、MVC有助于招聘具有特定能力的人员,例如平台工程师和UI工程师, 他们可以在自己的专业领域独立工作

代码示例
# -*- coding: utf-8 -*-


class Model(object):
    def get_data(self):
        data = [
            {
                "name": "Tom",
                "age": 23
             },
            {
                "name": "Jack",
                "age": 21
            },
        ]
        return data


class View(object):
    def show_data(self, data):
        for row in data:
            print(row["name"], row["age"])


class Controller(object):
    def __init__(self):
        self.model = Model()
        self.view = View()

    def interface(self):
        data = self.model.get_data()
        self.view.show_data(data)


if __name__ == '__main__':
    controller = Controller()
    controller.interface()
"""
Tom 23
Jack 21
"""

参考 《Python设计模式第2版》第九章 模型-视图-控制器-复合模式

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 1浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0709s