zoukankan      html  css  js  c++  java
  • 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)。

    (未完待续…)

  • 相关阅读:
    88. Merge Sorted Array
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    83. Remove Duplicates from Sorted List
    82. Remove Duplicates from Sorted List II
    81. Search in Rotated Sorted Array II
    80. Remove Duplicates from Sorted Array II
    计算几何——点线关系(叉积)poj2318
  • 原文地址:https://www.cnblogs.com/grkin/p/2985873.html
Copyright © 2011-2022 走看看