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

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

复合模式:

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


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
"""
相关文章
|
7月前
|
设计模式 缓存 安全
【JUC】(6)带你了解共享模型之 享元和不可变 模型并初步带你了解并发工具 线程池Pool,文章内还有饥饿问题、设计模式之工作线程的解决于实现
JUC专栏第六篇,本文带你了解两个共享模型:享元和不可变 模型,并初步带你了解并发工具 线程池Pool,文章中还有解决饥饿问题、设计模式之工作线程的实现
493 2
|
设计模式 前端开发 数据库
深入理解MVC设计模式:构建高效Web应用程序的基石
【7月更文挑战第4天】在软件工程领域,设计模式是解决常见问题的一系列经过验证的方法。其中,Model-View-Controller(MVC)设计模式自诞生以来,便成为了构建用户界面,特别是Web应用程序的黄金标准。MVC通过将应用程序逻辑分离为三个核心组件,提高了代码的可维护性、可扩展性和重用性。本文将深入探讨MVC设计模式的原理,并通过一个简单的代码示例展示其应用。
590 0
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。
|
设计模式 开发框架 前端开发
MVC 模式在 C# 中的应用
MVC(Model-View-Controller)模式是广泛应用于Web应用程序开发的设计模式,将应用分为模型(存储数据及逻辑)、视图(展示数据给用户)和控制器(处理用户输入并控制模型与视图交互)三部分,有助于管理复杂应用并提高代码可读性和维护性。在C#中,ASP.NET MVC框架常用于构建基于MVC模式的Web应用,通过定义模型、控制器和视图,实现结构清晰且易维护的应用程序。
361 2
|
前端开发 测试技术 开发者
MVC模式在现代Web开发中有哪些优势和局限性?
MVC模式在现代Web开发中有哪些优势和局限性?
|
设计模式 存储 前端开发
MVC革命:如何用一个设计模式重塑你的应用架构,让代码重构变得戏剧性地简单!
【8月更文挑战第22天】自定义MVC(Model-View-Controller)设计模式将应用分为模型、视图和控制器三个核心组件,实现关注点分离,提升代码可维护性和扩展性。模型管理数据和业务逻辑,视图负责数据显示与用户交互,控制器处理用户输入并协调模型与视图。通过示例代码展示了基本的MVC框架实现,可根据需求扩展定制。MVC模式灵活性强,支持单元测试与多人协作,但需注意避免控制器过度复杂化。
307 1
|
前端开发 Java
【案例+源码】详解MVC框架模式及其应用
【案例+源码】详解MVC框架模式及其应用
1344 0
|
设计模式 机器学习/深度学习 测试技术
设计模式转型:从传统同步到Python协程异步编程的实践与思考
【7月更文挑战第15天】探索从同步到Python协程异步编程的转变,异步处理I/O密集型任务提升效率。async/await关键词定义异步函数,asyncio库管理事件循环。面对挑战,如思维转变、错误处理和调试,可通过逐步迁移、学习资源、编写测试和使用辅助库来适应。通过实践和学习,开发者能有效优化性能和响应速度。
247 3
|
设计模式 前端开发 PHP
PHP中实现简易的MVC模式
【8月更文挑战第31天】 本文将引导你了解如何在PHP中应用MVC(Model-View-Controller)架构模式,通过一个简单的例子展示其实现过程。我们将从基础的概念出发,逐步深入到代码实践,最终让你能够自己动手构建一个简易的MVC框架。文章不仅提供理论知识,还包含具体的代码示例,帮助你更好地理解并运用MVC模式。
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
814 0

推荐镜像

更多