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)。

    (未完待续…)

  • 相关阅读:
    [转]《鸟人》想拍个文艺片,为什么要自虐
    [转] Java内部类之闭包(closure)与回调(callback)
    编程模型的笔记
    delphi char数组、string和Pchar的相互转换
    Char 与 Byte
    根据函数名称---函数指针--调用函数
    procedure of object 对象的函数指针
    虚方法、抽象方法、抽象类、重定义、覆盖重写------我自己
    Delphi 中的自动释放策略
    Delphi中设置条件断点
  • 原文地址:https://www.cnblogs.com/grkin/p/2985873.html
Copyright © 2011-2022 走看看