当前位置: 首页 > news >正文

网站推广策划思路与执行长乐市住房和城乡建设局网站

网站推广策划思路与执行,长乐市住房和城乡建设局网站,江门模板建站定制,wordpress 标签 插件下载转载地址#xff1a;http://frodoking.github.io/2015/02/01/android-mvc-mvp-analysis/ 为了解决逻辑处理和UI视图的松散耦合#xff0c;MVC和MVP的架构模式在很多App中使用比较广泛。 那什么是MVP呢#xff1f;它又和我们常常听到的MVC有什么关系了以及区别呢#xff1f;…转载地址http://frodoking.github.io/2015/02/01/android-mvc-mvp-analysis/ 为了解决逻辑处理和UI视图的松散耦合MVC和MVP的架构模式在很多App中使用比较广泛。 那什么是MVP呢它又和我们常常听到的MVC有什么关系了以及区别呢 MVP 是从经典的模式MVC演变而来它们的基本思想有相通的地方Controller/Presenter负责逻辑的处理Model提供数据View负责显示。作为一种新的模式MVP与MVC有着一个重大的区别在MVP中View并不直接使用Model它们之间的通信是通过Presenter (MVC中的Controller)来进行的所有的交互都发生在Presenter内部而在MVC中View会从直接Model中读取数据而不是通过 Controller。 在MVC里View是可以直接访问Model的从而View里会包含Model信息不可避免的还要包括一些业务逻辑。 在MVC模型里更关注的Model的不变而同时有多个对Model的不同显示及View。所以在MVC模型里Model不依赖于View但是View是依赖于Model的。不仅如此因为有一些业务逻辑在View里实现了导致要更改View也是比较困难的至少那些业务逻辑是无法重用的。 MVP如何解决MVC的问题 在MVP里Presenter完全把Model和View进行了分离主要的程序逻辑在Presenter里实现。而且Presenter与具体的View是没有直接关联的而是通过定义好的接口进行交互从而使得在变更View时候可以保持Presenter的不变即重用 不仅如此我们还可以编写测试用的View模拟用户的各种操作从而实现对Presenter的测试—而不需要使用自动化的测试工具。 我们甚至可以在Model和View都没有完成时候就可以通过编写Mock Object即实现了Model和View的接口但没有具体的内容的来测试Presenter的逻辑。 在MVP里应用程序的逻辑主要在Presenter来实现其中的View是很薄的一层。因此就有人提出了Presenter First的设计模式就是根据User Story来首先设计和开发Presenter。在这个过程中View是很简单的能够把信息显示清楚就可以了。在后面根据需要再随便更改View而对Presenter没有任何的影响了。 如果要实现的UI比较复杂而且相关的显示逻辑还跟Model有关系就可以在View和Presenter之间放置一个Adapter。由这个 Adapter来访问Model和View避免两者之间的关联。而同时因为Adapter实现了View的接口从而可以保证与Presenter之间接口的不变。这样就可以保证View和Presenter之间接口的简洁又不失去UI的灵活性。 在MVP模式里View只应该有简单的Set/Get的方法用户输入和设置界面显示的内容除此就不应该有更多的内容绝不容许直接访问Model—这就是与MVC很大的不同之处。 MVP的优点 1、模型与视图完全分离我们可以修改视图而不影响模型2、可以更高效地使用模型因为所有的交互都发生在一个地方——Presenter内部3、我们可以将一个Presenter用于多个视图而不需要改变Presenter的逻辑。这个特性非常的有用因为视图的变化总是比模型的变化频繁4、如果我们把逻辑放在Presenter中那么我们就可以脱离用户接口来测试这些逻辑单元测试。使用方法 1、建立bean public class UserBean {private String mFirstName;private String mLastName;public UserBean(String firstName, String lastName) {this. mFirstName firstName;this. mLastName lastName;}public String getFirstName() {return mFirstName;}public String getLastName() {return mLastName;} }2、建立model接口处理业务逻辑这里指数据读写 public interface IUserModel {void setID(int id);void setFirstName(String firstName);void setLastName(String lastName);int getID();UserBean load(int id);// 通过id读取user信息,返回一个UserBean }3、建立view接口更新ui中的view状态这里列出需要操作当前view的方法 public interface IUserView {int getID();String getFristName();String getLastName();void setFirstName(String firstName);void setLastName(String lastName); }4、建立presenter主导器通过iView和iModel接口操作model和viewactivity可以把所有逻辑给presenter处理这样java逻辑就从手机的activity中分离出来 public class UserPresenter {private IUserView mUserView;private IUserModel mUserModel;public UserPresenter(IUserView view) {mUserView view;mUserModel new UserModel();}public void saveUser( int id, String firstName, String lastName) {mUserModel.setID(id);mUserModel.setFirstName(firstName);mUserModel.setLastName(lastName);}public void loadUser( int id) {UserBean user mUserModel.load(id);mUserView.setFirstName(user.getFirstName()); // 通过调用IUserView的方法来更新显示mUserView.setLastName(user.getLastName());} }结束语 MVP主要解决就是把逻辑层抽出来成P层要是遇到需求逻辑上的更改就可以只需要修改P层了或者遇到逻辑上的大概我们可以直接从写一个P也可以很多开发人员把所有的东西都写在了Activity/Fragment里面这样一来遇到频繁改需求或者逻辑越来越复杂的时候Activity/Fragment里面就会出现过多的混杂逻辑导致出错所以MVP模式对于APP来对控制逻辑和UI的解耦来说是一个不错的选择 在这里多说一下其实MVP只是一个总体的解决方案。在V和P之间其实我们还可以采用事件总线的方案来解决这种高耦合的情况。本人在另外一篇文章中将会讲到 事件总线otto的bus和eventbus的一个对比分析 http://frodoking.github.io/2015/03/30/android-eventbus-otto-analysis/
http://www.yutouwan.com/news/104351/

相关文章:

  • 网站建设app销售好做吗如何上传模板到网站
  • 建设二手商品网站总结做二手车网站需要什么手续费
  • 黄冈做学生互评的网站asp.net 4.0网站开发
  • 网站内移动的图片怎么做的多语言网站开发公司
  • 网站建设销售客户疑问企业网站 wordpress
  • 电子商务网站建设基础万网虚拟机怎么做两个网站
  • 服务网站建设公司深圳比较大的贸易进口公司
  • 黄金网站app免费视频下载网站的规划建设与分析
  • 免费注册163免费邮箱百度seo效果怎么样
  • 网站有可能搜不到吗网站建设策划书网站发布与推广
  • 网站建设价格标准案例动漫制作专业大学排名
  • 叫任何一个人一个小时做网站linux做网站配置
  • 个人网站制作程序鞍山企业网站建设
  • 国外地图搜房网站建设装饰工程公司
  • 网站开发怎样验收wordpress mysql索引
  • 长沙专业网站建设服务php网站在线打包源码
  • 网站模板整站做网站的程序
  • 做网站现在赚钱吗网站权重收录
  • 基于分布式控件的网站开发框架医疗网站优化公司
  • 商会网站建设方案书百度网站权重排名
  • vs可以做网站吗集团网站建设计划表百度
  • 郑州seo关键词推广wordpress模板优化
  • 网站开发和设计access 网站开发
  • 什么是网站销售贴吧网站开发需求分析
  • 建设银行网站查询密码怎么设置开源的公司网站
  • 网站的404如何做海外社交平台推广
  • 公司的网站如何编辑搜索引擎优化的概念是什么
  • 网站开发公司怎么选择成都解封公告
  • 慈溪网站制作中国招投标采购网官网
  • 网页不能运行wordpress优化wordpress访问速度