上图是mvp的数据流转图,和mvc不同的是,c换成了p,并且m向v传递数据的方式只能通过p,而不能通过notify通知。
看起来mvc的数据流动也可以实现此过程,但是由于mvc的v和c是不能完全分离的,增加了一层p,将v和c看作是一层,使分层更加的清晰。
上图是mvp的各层持有关系。v层和p层是相互持有的,p层持有m层,其实每一层都是可以通过接口来持有的,那样就都不构成了耦合。
缺点:
1、通过接口互相持有,接口很多,代码太啰嗦
2、v层事件转交给p层处理,多了一层传递过程,代码量增大
优点:
1、v和m层解耦
2、业务逻辑都在p层,分层清晰
网友评论