zoukankan      html  css  js  c++  java
  • MVP演化论

      本文是翻译MVP: Model-View-Presenter The Taligent Programming Model for C++ and Java(Mike Potel)文章的摘要.该文介绍了从MVC到MVP的思想演化过程.

    • SmallTalk编程模型
      • 在该项目中,使用了MVC来实现GUI(graphical user interface)对象.
      • 使用3个抽象来代表一个GUI对象(checkbox/textbox).
        • Model.代表对象对应的底层数据.(checkBox的on-off状态).
        • View.访问Model中的数据,并完成数据的UI展示.
        • Controller.决定用户在View上的交互动作,如何反映到Model中的数据变化.
        • 最后,Model会通知View,数据状态发生了变化,需要View重绘.整个流程结束.
      • 然后,通过继承和自定义基础的model,view,controller基类,来创建GUI对象.
        • 在一个GUI对象中,含有3个紧密关联的部分.
        • 一个复杂元素,可能会含有多个继承类.
        • 整个交互程序都使用MVC来构建.
    • Taligent编程模型
      • 目标是分解MVC的概念到各个组成部分.
      • 首先,分离了Model和View-Controller.后者成为Presenter.
        • 这样,将问题分解为两块:数据管理(Data Management)和用户界面(User Interface).
        • 数据管理.不仅包含了在Model中的数据表现,还包含了数据结构,访问方法,交换协议,持久化,共享,分布性等.
        • 用户界面.不仅包含了如何在屏幕上绘制对象和鼠标键盘事件,还包含了什么操作是被允许的,会有什么样的反馈,如何辨别用户操作.
      • 好处
        • Model被封装,隔离了与View-Controller的关联.
          • 当替换Model中的数据结构时,仍然可以保持既有的Presenter逻辑.
          • 针对同一份Model,可以有多份Presenter进行展示.这样便于并行开发.
          • 避免在修改数据Model时,需要同步修正使用Model的代码.
        • Model支持持久化.
          • 由Model自身来决定Model中的数据的存储方式.
          • 可以自己将数据保存在内存中,可以通过proxy来访问数据库,可以使用Cache机制...
          • 而这一切,对于上层的Presenter是完全透明的.
        • Model支持共享
          • 使用不同的Model来封装相同的远程数据,使得多个用户可以共享同一分数据.
          • 一个用户对数据的更改,所有人都能看到更新.能够多人同步地操作相同的数据.
    • 数据管理的3个问题
    • 用户界面的3个问题
      • Presenter.翻译用户发起的事件和指令,将其匹配到操作Model的对应Commond上.
    • MVP模式
    • MVP编程Framework
    • 抽象的优势
      • 区分Model/View.
        • View独立:同一份数据可以有不同的展示.
      • 区分Selection/Model.
        • Model独立:改变数据的结构时,不会影响数据的使用.同时支持持久化,远程数据库,和共享.
      • 区分Commond/Selection.
        • 命令重用:单个命令可以应用到对同一Model的单个,多个或者所有数据元素的Selection上.
      • 区分Interactor/View.
        • 输入通用化:在不改变程序逻辑或数据的渲染,可以支持不同的菜单,对话框.
      • 区分Presenter/Command-Interactor.
        • 逻辑重用:程序逻辑和算法从特定的显示显示和数据管理细节中抽象出来,可以在不同程序间重用.
      • 整体上.
        • 平台的可移植性.多标准,分布式,层次分割.
  • 相关阅读:
    Changing Icon File Of Push Button At Runtime In Oracle Forms 6i
    Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
    Change An Item Property Using Set_Item_Property In Oracle Forms
    Calling / Running a report in Oracle forms 10g / 11g
    Change Or Set Report Object Property At Run Time In Oracle Forms Using Set_Report_Object_Property Command
    Refresh / Updating a form screen in Oracle D2k Forms 6i
    Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
    Perform Cut Copy Paste Operations Using Cut_Region Copy_Region Paste_Region Commands In Oracle Forms
    CHECKBOX_CHECKED built-in in Oracle D2k Forms
    Limiting To Select Only 5 Check Boxes Out Of Ten In Oracle Forms
  • 原文地址:https://www.cnblogs.com/robyn/p/3799344.html
Copyright © 2011-2022 走看看