• MVP模式


    --by Jean-Paul Boodhoo

    首先声明,这种模式可能已经过时,这里只是作为补充知识,回顾一下。

    这里下载代码 

    快速导航

    Following the MVP

    第一次试运行

    填充下拉菜单

    实现View接口

    下一步是什么?


    UI创建技术,例如 ASP.NET 和Window Forms变得进一步强大, UI经常干了它不该干的活。责任区分不清, 经常把其他层的逻辑都拿了过来。MVP模式很好的解决了这个问题。这我用MVP模式建立了一个显示窗口,使用的是Northwind数据库。

    UI层充斥一堆逻辑的坏处? 相同的代码重复出现在几个常用的视图里。 测试困难,维护丑陋的UI运行脚本困难。重构的时候,MVP模式可以发挥其作用。重用代码使其容易测试。

    图1,组成示例应用的分层代码, 注意UI和表示层Presentation是分开的,你可能以为两者是一回事。但其实,UI层只包含Forms和控件, WebForm项目里,主要就是Webform, User control, 和Server control, Winform项目里,主要就是一堆Windows Form, user control, 第三方库。 这个额外的Prentation层使显示和业务分离。 在Presentation层你可能要实现,验证显示,UI输入归集等。

    cc188690.fig01(en-us)

    图1, Application Architecture


    Following the MVP

    正如你在图2中看到的,此项目的UI是比较标准, 页面加载的时候,屏幕显示一个下拉框, 从Northwind数据库装入所有的Customers, 如果你从下拉菜单选择一个Customer,页面会更新以显示那个Customer的详细。 用MVP模式,可以把行为从UI转移到它们自己的类中。 图3显示了不同类之间的联系。

    cc188690.fig02(en-us)

    图2, 客户信息

    注意Presenter并不了解具体UI层, 它只和接口联系, 但是不知道接口的具体实现。 这么做强化了Presenter在不同UI技术间的重用性。(我的理解是Web或者Winform)。

    (未完待续…)

  • 相关阅读:
    洛谷 P1284 三角形牧场WD
    luogu P3817 小A的糖果
    P3374 【模板】树状数组 1
    线程与threading模块
    socketserver模块
    python 粘包问题及解决方法
    python 网络编程
    类的进阶四 反射和内置方法
    python hashlib模块 logging模块 subprocess模块
    类的进阶三
  • 原文地址:https://www.cnblogs.com/grkin/p/2985873.html
Copyright © 2020-2023  润新知