MVP是什么欣晨的意思和含义 解读MVP的含义和应用场景?

1.什么是MVP?Model: 业务逻辑和实体模型View:用户交互和视图显示,在android中对应activityPresenter: 负责完成View于Model间的逻辑和交互2.为什么要用MVP?通常我们都用MVC。但是原有的MVC模式有一些短板。比如在android开发中,activity充当着MVC中Controller的角色,但是在实际开发中还需要处理view的逻辑(既担任V,又担任C)。当业务界面复杂时我的activity会显得很庞大。于是出现了MVP模式,它新增了一个Presenter角色用于处理数据和界面的模型以及逻辑,Activity仅仅用于展示界面和用户交互,这样就解决了MVC中角色不清的局面。所以,MVP与MVC的重大区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部。3.实战演练现在我们来做一个demo,功能很简单。点击button添加一个用户,点击listview删除一个用户。xml文件如下<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
先看一下demo的结构:
整个项目一共有三个操作1.添加(操作Model)2.删除(操作Model)3.显示(操作View。这一点不太容易想到,毕竟MVC里面activity同时担任V和C的角色,不容易看出来)因此,整个demo的操作逻辑就很清晰了MainActivity.javapublic class MainActivity extends Activity implements MainViewOperation {private Button button;private ListView listView;private ArrayAdapter adapter;private Presenter presenter;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
listView = (ListView) findViewById(R.id.listView1);
presenter = new Presenter(this);
adapter = new ArrayAdapter<User>(this,
android.R.layout.simple_list_item_1, presenter.getUserList());
listView.setAdapter(adapter);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
presenter.addUser(new User("aaa", new Random().nextInt(10) + 1));
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
presenter.removeUser(position);
}
});
}
//显示数据,由于是adapter,所以只需要notifyDataSetChanged就可以将数据变化显示出来
@Override
public void show() {
adapter.notifyDataSetChanged();
}
}MainViewOperation.java(提供“显示数据”接口)public interface MainViewOperation {public void show();}User.java(model类)public class User {public String name;public int age;public User(String name, int age) {
this.name = name;
this.age = age;
}
}UserOperation.java(实现“添加”“删除”)public class UserOperation {private ArrayList userList = new ArrayList();public void addUser(User user) {
userList.add(user);
}
public void removeUser(int index) {
userList.remove(index);
}
public ArrayList<User> getUserList(){
return userList;
}
}Presenter.java(M和V的交互)public class Presenter {private UserOperation userOperation;private MainViewOperation mainViewOperation;public Presenter(MainViewOperation mainView) {
this.mainViewOperation = mainView;
userOperation = new UserOperation();
}
public void addUser(User user){
userOperation.addUser(user);
mainViewOperation.show();
}
public void removeUser(int index){
userOperation.removeUser(index);
mainViewOperation.show();
}
public ArrayList<User> getUserList(){
return userOperation.getUserList();
}
}}
精益创业的核心思想之一就是( Minimum Viable Product)”最小可行性产品”,什么是最小可行性产品”,简单的说就是一个产品的雏形,是指将创业者或者新产品的创意用最简洁的方式开发出来,可能是产品界面也可以是能够交互操纵的胚胎原型。它是针对天使用户的最小功能组合。它的好处是能够直观地被客户感知到,有助于激发客户的意见。通常最小可用品有四个特点:体现项目创意、能够测试和演示、功能极简、开发成本最低甚至是零成本。在MVP的定义中有两个关键点。第一,它并不针对企业未来所有的用户,而只是针对天使用户。这群人对产品有高度的容忍度,能够看到产品的未来,愿意互动,一起改进产品。2010年4月6日,小米公司正式成立。同年8月,MIUI ROM第一版正式内测。当时国内已经有许多的ROM制作团队和个人,MIUI 作为初生牛犊并不为人所知。小米公司的工程师一个一个地联系剧机爱好者和发烧友,向大家介绍这款新推出的ROM。经过不断的努力,先后共有100名勇敢的用户成为了MIUI第一版的首批内测体验者,是他们见证了MIUI从无到有,从小到大的成长历程。小米手机小米发布会MVP的定义中的第二个关键点:并非一个庞大、复杂的功能组合,而是一个最小、最基本的功能组合。MVP的产品版本可以让我们花最少的力气、最短的开发时间,经历一次完整的开发-测量-认知”循环。这个最小可行性产品少了很多日后可能相当重要的功能特性。但是,从某种角度来说,开发MVP需要投入额外的工作,因为我们必须能衡量它的影响力。比如,开发的原型产品只用于工程师和设计师的内部品质测评是不够的,我们还必须把它推向潜在的顾客,评估他们的反应。我们甚至还需要把这个原型产品销售给顾客。一个最小可行性产品有助于创业者开启学习认知的历程。它并不一定是想象中的最小型产品;而是可以用最快的方式,以最少精力完成“开发一测量一认知”的反馈环节。传统的产品开发通常要耗费很长的筹划时间,反复推敲,尽量把产品做到完美。与之相反,开发最小可行性产品的目的则是开启学习认知的流程,而不是结束这个流程。与原型或概念测试不同的是,最小可行性产品并非作用于回答产品设计或技术方面的问题,而是以验证基本的商业假设为目标。美团与大众点评的发展大众点评网最开始也不是什么都有,最开始就是用一周时间做的一个简单的网页,并租用一个几百元一年的服务器,核心是怎样培养用户写点评论。这就是最初的最简化可行性产品。在上海做了差不多一年,反响还不错,然后才开始开拓其他城市,花了差不多大半年的时间做了北京和杭州,这两个城市通过同样的方式进行复制还算成功,证明了这种模式是可行的。所以后面又逐渐覆盖了更多的城市,在品类上也从餐馆到休闲娱乐再到购物等。}

我要回帖

更多关于 欣晨的意思和含义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信