Skip to content

Commit 86eb0ac

Browse files
committed
增加有关android架构模式MVC、MVP、MVVP的相关解析。框架是大智慧,用来对软件进行设计分工。设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度
1 parent f8116c2 commit 86eb0ac

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/com/company/arch/summary.txt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
有关于MVC MVP MVVP
2+
3+
MVC:
4+
5+
Model:数据保存 将新的数据发送到view
6+
Controller:业务逻辑 要求model改变状态
7+
View:用户界面 传递指令到controller
8+
9+
常用的通信方式是:view、controller和model单项循环,所有的通信都是单项的
10+
变种场景:view和controller双向通信 view 和 model双向通信
11+
12+
MVP:
13+
1.各部分之间的通信都是双向的
14+
2.view 和 model不发生联系,都是通过presenter 传递 非常厚,多有业务都部署在此
15+
3.view 非常薄,不部署任何业务逻辑,被成为“被动视图” Passive View,即没有任何主动性
16+
17+
MVVP:
18+
19+
与mvp的不同是 view 和 viewModel之间是同步的双向绑定(data-binding),view的变动自动反映在ViewModel
20+
21+
22+
MCV MVP 架构的性质比较强
23+
MVVP 类似于库、框架。一次写完,多次复用。本质就是监听器,实现view 和viewModel的双向绑定
24+
25+
26+
怎样解决匿名内部类中final的问题:
27+
1.包装成对象
28+
2.独享中设置接口回调
29+
30+
MVVP:是加了双向绑定的MVP。以实现表现数据和内存数据的实时同步更新(表现数据、内存数据和数据库数据)。实现相互绑定,相互更新。
31+
32+
33+
MVC和MVP的本质区别:
34+
struts的框架解释
35+
“mvp就是mvc,mvc其实不是真正的mvc”。
36+
没什么区别,mvc抽象出了单独的View层,mvp抽出了presenter层
37+
两者都实现了view层和控制层的松耦合,实现了面向接口编程。通过在控制层把view层的接口(如showData())抽象出来,View层
38+
实现这个接口
39+
40+
MVC是以控制器作为连接view和model的桥梁以实现解耦
41+
MVC是一种框架而非设计模式,可以把mvc看成是观察者模式、组合模式和策略模式的组合
42+
框架和设计模式的区别:
43+
框架是大智慧,用来对软件设计进行分工。设计模式是小技巧,用来对具体问题提出解决方案,以提高代码复用率,降低耦合
44+
45+
mvc短处:
46+
1.因为要实现model和view的严格分离,所以给调试带来了困难
47+
2.将一个应用分三个部分,意味着同一个工程会多出许多文件。对于小项目来讲,反而会带来更大的工作量及复杂性
48+
49+
所以mvc更适合大型项目。比如Android的Ui系统框架,我们在常用的Activity中可以感受到MVC方面的架构,
50+
但这个框架并不是我们自己完成的,而是由framework给我们搭建好的。在平时的开发中我们并不常用到MVC模式去
51+
脱离AndroidUI系统构建自己的框架结构
52+
53+
MVC和MVP的最主要区别是:MVP中的view不能直接访问Model,必须通过Presenter
54+
55+
56+
为了防止内存泄露的场景,常用软引用结合Activity、Fragment的生命周期来解决此问题
57+
相关的示例代码:https://github.com/hehonghui/the-tech-frontier-app

0 commit comments

Comments
 (0)