原文http://code.google.com/intl/zh-CN/webtoolkit/articles/mvp-architecture.html
开发任何大型应用程序都有其困难,GWT应用程序也不例外。多个开发人员同时工作在同一个代码库中,维护同一模块的功能,很有可能把代码搞乱。为了增强代码的可维护性,我们在项目引进了设计模式来分离各部分的职责。
在多种设计模式可供选择:Presentation-abstraction-control, Model-view-controller, Model-view-presenter等等。虽然每种模式有它的好处,我们发现当开发GWT应用程序时,MVP设计模式是首选的,理由有两个。 首先MV设计模式,就像其他的设计模式一样,通过解藕方式来允许多个开发人员同时工作;其次,这种模式使我们能够减少我们使用 GWTTestCase ,由于它依赖于浏览器,而且,利用MVP设计模式后,我们大部分的代码,只需写轻量级(快速)JRE的测试用例(不需要浏览器)。
这个模式的核心就是把功能分成组件,对于GWT应用,有一个明确的重点就是要求使 视图 尽可能简单,以减少我们使用GWTTestCase测试时对浏览器依赖以及减少花在测试上的总时间。
一旦你了解这个设计模式这背后的原理。开发一个MVP的应用程序可能变得直接和容易。为了帮助解释这些概念,我们将使用一个简单的联系人的应用作为一个实例。这个应用程序将允许用户查看,编辑和添加联系人到存储在服务器上的联系人列表中。
首先,我们将引入以下组件:
Model
View
Presenter
AppController
然后我们将研究这些组件如何交互的,交互过程可分为
绑定 presenter 与view
事件(Events) 与事件总线 (event bus)
历史管理(History)和视图切换
测试
Model
一个包含业务对象模型,并在我们的联系人的应用中,我们有:
联系人(Contact):一个联系人列表中的一个对象。 为简单起见,这个对象只包含了一个名字,姓氏和电子邮件地址。 在更复杂的应用,这个对象将有更多的属性。
联系人明细(ContactDetails):仅包含唯一标识符和显示名称。
View
一个视图包含应用程序的所有的UI组件。 这包括任何表格,标签,按钮,文本框等,视图(view)负责UI的布局,对模型(model)并不了解。 就是说视图不知道它正在显示联系人的信息,只是知道它有,例如,3标签,3个TextBox和2个按钮,垂直的组织在一起。视图之间的转换是通过表现层(Presenter)中的历史(History)记录来管理。
在我们的联系人应用程序的视图有:
ContactsView
EditContactView
EditContactView用于添加新的联系人,以及编辑现有的联系人。
Presenter
表现层(Presenter)包括我们联系人应用的所有逻辑,有历史管理、视图转换、以及通过RPC与服务端的数据同步。作为一个通用的原则,每个视图(view)有一个对应的Presenter,用来驱动视图,处理这个视图中的部件产生的事件。
在我们的例子中,有如下的Presenter
ContactsPresenter
EditContactPresenter
EditContactPresenter 可以新增联系人以及编辑存在的联系人。
AppController
对于一些不属于任何视图,而是一些应用层面的逻辑,我们引入了一个AppController 组件,这个组件包含历史管理和视图转换。视图转换直接和历史管理相关,下面将针详细介绍。
分享到:
相关推荐
总之,MVP设计模式是Android开发中一种常用且实用的架构模式,它通过明确的职责划分提高了代码的可读性和可维护性,为项目的长期发展打下了坚实的基础。通过学习和实践"android mvp design pattern示例"项目,开发者...
总的来说,Android MVP设计模式是解决大型应用复杂性的有效手段,通过合理的结构划分,可以提高代码的可读性、可测试性和可维护性。在实际开发中,开发者应根据项目的规模和需求灵活选择是否采用MVP,以及如何优化其...
MVP(Model-View-Presenter)设计模式是一种常见的软件架构模式,用于分离用户界面(UI)和...MVP设计模式通过分离UI和业务逻辑,实现了应用的高内聚和低耦合,这对于提高Android应用的质量和开发效率有着重要的意义。
在软件开发领域,MVP(Model-View-Presenter)模式是一种常见的设计模式,它主要用于构建用户界面,特别是在Android开发中非常流行。MVP模式的主要目标是实现清晰的代码结构,提高可测试性和可维护性。在这个场景下...
**设计模式学习:Model View Presenter (MVP)与MVC** 在软件开发中,设计模式是一种通用解决方案,用于解决常见的设计问题,以提高代码的可读性、可维护性和复用性。MVP(Model View Presenter)和MVC(Model View ...
MVP(Model-View-Presenter)模式是一种软件设计模式,主要应用于Android开发中,用于分离应用的业务逻辑、用户界面和数据模型。这种模式有助于提高代码的可测试性,降低耦合度,使得代码结构更加清晰。下面我们将...
**MVC(Model-View-Controller)和MVP(Model-View-Presenter)是两种广泛应用于软件开发,尤其是Web和移动应用开发中的设计模式。它们都旨在实现业务逻辑与用户界面的分离,提高代码的可维护性和可测试性。本文将...
在Android应用开发中,为了提高代码的可维护性和可扩展性,开发者通常会采用一些设计模式来组织代码结构,其中Model-View-Presenter(MVP)模式就是一个广泛使用的模式。本文将深入探讨在Android环境中如何搭建一个...
** MVP架构的主要优点在于它的可测试性...理解架构背后的原则,以及如何有效地在实际应用中实施,将有助于提升你的Android开发技能。同时,也可以探索其他架构模式,比如MVVM,了解它们如何适应现代Android开发的需求。
**MVC(Model-View-Controller)模式与MVP(Model-View-Presenter)模式是两种常见的软件架构设计模式,主要用于构建用户界面。这两种模式在软件开发中扮演着至关重要的角色,帮助开发者组织代码,提高代码的可维护...
MVC(Model-View-Controller)模式是一种经典的软件设计模式,广泛应用于Web开发和移动应用开发,包括Android平台。在Android开发中,理解并有效地应用MVC模式可以帮助开发者构建可维护、可扩展的应用程序。本文将...
在Android应用开发中,MVP(Model-View-Presenter)架构是一种常见的设计模式,它将应用程序的业务逻辑、用户界面和数据模型分离,以提高代码的可测试性、可维护性和可扩展性。本Android MVP架构demo展示了如何在...
Android MVP(Model-View-Presenter)模式是一种设计模式,它在Android应用开发中广泛使用,以提高代码的可测试性和可维护性。MVP模式将应用程序的组件职责分离,使得界面展示(View)、业务逻辑(Presenter)和数据...
MVP(Model-View-Presenter)模式是一种软件设计架构模式,尤其在Android开发中被广泛采用,用于分离应用的业务逻辑、用户界面和数据...在实际项目中,可以根据需求选择合适的设计模式,以优化代码结构和提高开发效率。
在软件开发领域,尤其是Web和移动应用的开发中,设计模式是提升代码结构和可维护性的关键。MVC(Model-View-Controller)、MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel)是三种常见的用于构建用户界面...
在软件开发领域,尤其是在Android应用开发中,架构模式的选择对于代码的组织和维护至关重要。本示例着重探讨了三种常见的架构模式:MVC(Model-View-Controller)、MVP(Model-View-Presenter)和MVVM(Model-View-...
在Android应用开发中,选择合适的架构模式对于项目的可维护性和扩展性至关重要。本文将深入探讨三种常见的架构模式:MVC(Model-View-Controller)、MVP(Model-View-Presenter)以及MVVM(Model-View-ViewModel),...
在 Android 开发中,Model-View-Presenter(MVP)模式是一种常见的设计模式,它将应用的业务逻辑、数据处理和用户界面分离,提高了代码的可测试性和可维护性。这个"android官方MVP的demo.zip"文件包含了Google官方...
在Android开发中,MVP(Model-View-Presenter)架构模式是一种常见的设计模式,用于分离应用的业务逻辑、用户界面和数据模型。本教程将详细阐述MVP的基本实现及其核心概念。 **一、MVP模式简介** MVP是Model-View-...
Android MVP(Model-View-Presenter)是一种软件设计模式,它在Android应用开发中被广泛采用,特别是在大型复杂项目中,因为它有助于提高代码的可测试性和可维护性。MVP模式将应用程序的逻辑分为三个主要组件:Model...