python-设计模式-MVC模式

概述

mvc模式的思想就是分层,将每个关注点的问题放在不同的层上进行解决。该模式符合SOC(关注点分离)原则,一般会分为数据访问层,业务逻辑层,表示层。

  • 数据访问层:处理和数据的交互,如:建立连接,是否使用连接池,获取数据,插入数据等等
  • 表示层:只处理数据的展示,比如展示为饼图,使用不同的色调等等
  • 业务逻辑层:这一层负责将表示层和数据访问层粘合,将表示层的请求,按照业务规则处理后,向数据访问层插入数据或者获取数据等等

我们还是使用椰奶的例子说事,比如柜台存放椰奶这件事:

  • 柜台该怎么摆放,这就是表示层的事
  • 到底要摆放那些椰奶,顾客选择的椰奶多少钱这是业务逻辑层的事
  • 选择的椰奶到底在不在库存,这就是数据访问层的事

实践一下

# @Time : 2022/7/17 15:18 
# @File : MvcModel.py 
# @Software: PyCharm


inventory = [
    f"盒装,代言人徐冬冬,100ml, 椰奶",
    f"盒装,代言人张一山,100ml, 椰奶",
    f"罐装,代言人古力娜扎,200ml, 椰奶",
    f"瓶装,代言人马尔扎哈,300ml, 椰奶",
]


class CoconutMilkModel:

    def get_inventory_nums(self):
        print("获取库存量")
        return len(inventory)

    def get_one(self, n):

        if not isinstance(n, int):
            n = int(n)

        if n > len(inventory) -1:
            raise Exception(f"不存在的库存 {n}")

        return inventory[n]

    def get_all(self):
        return inventory


class CoconutMilkView:

    def show(self, all_cm):
        print(f"我要将所有的椰奶,横着摆放, {all_cm}")

    def error(self, msg):
        print(f"ERROR, {msg}")

    def select_one(self):
        return input("请选一个椰奶, 老弟 ==> ")


class CoconutMilkController:

    def __init__(self):
        self.view = CoconutMilkView()
        self.model = CoconutMilkModel()

    def run(self):
        self.view.show(self.model.get_all())
        while True:
            try:
                select_num = self.view.select_one()
                print(
                    self.model.get_one(select_num)
                      )
            except Exception as e:
                self.view.error(e.__str__())


if __name__ == "__main__":
    cm_controller = CoconutMilkController()
    cm_controller.run()

运行结果

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python MVC(Model-View-Controller)是一种软件设计模式,用于构建GUI(图形用户界面)应用程序。它将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller),以实现更好的代码组织、可维护性和可扩展性。 模型(Model)是应用程序的核心组件,负责处理数据的逻辑和状态。它通常包含数据结构、数据库操作、数据验证等功能。在Python中,可以使用类来表示模型,并在其中定义相关的方法和属性。 视图(View)是用户界面的表示,负责将模型的数据呈现给用户,并接收用户的输入。在Python中,可以使用GUI库(如Tkinter、PyQt、wxPython等)来创建视图,包括窗口、按钮、文本框等。 控制器(Controller)是模型和视图之间的桥梁,负责处理用户输入的操作,并更新相应的模型和视图。它可以监听用户界面的事件(如按钮点击、键盘输入等)并触发相应的模型行为。在Python中,可以使用事件处理器或回调函数来实现控制器。 在Python MVC中,模型、视图和控制器之间的交互一般遵循以下方式:视图通过控制器来获取和更新模型的数据,而控制器通过视图的操作来触发模型的更新,并将更新后的数据传递给视图进行展示。 使用Python MVC可以将应用程序的不同部分分离开来,使代码更加模块化和可复用。模型、视图和控制器各自负责不同的功能,使得代码的编写和调试更加简单。此外,它还使得应用程序的开发团队可以同时并行地开发不同的模块。 总之,Python MVC设计模式是一种用于构建GUI应用程序的可行方法。它将应用程序分解为模型、视图和控制器,以实现代码的可维护性和可扩展性。通过合理地设计和组织代码,可以更加高效地开发GUI应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值