1. 引进 MVP 更容易进行分层测试
2. 真正要实现多界面,换肤,或者经常要升级改动时.
3. 分工更加明确,易于维护和提高可读性
4. 事件模型,Bean与业务逻辑的交互解耦性差
5. Web窗体框架中业务逻辑和页面显示逻辑混杂在一起,随着业务需求增加,应用程序变得愈加复杂,使得应用程序的质量难以保证,程序的维护也变得更加艰难
6. 摒弃继承,
7. 隔离UI、UI逻辑和业务逻辑、数据
8. 职责的分离:将职责分离到不同的部分后,使得复杂的业务能够简单的实现、使得应用程序的维护也变得更轻松,同时也能提高代码的重用性。
9. 提高可测试性。
10.多视图。将视图和业务模型分离之后,视图不会直接依赖于业务模型,那样我们能同时将相同的数据通过多个不同的视图进行展现。适应变化。通常来说界面的变化往往比业务逻辑的变化更加频繁,不同的用户可能喜欢不同的展现风格、或者使用不同的设备进行展现,当业务模型不再依赖视图之后,添加新类型的展现视图变得更加容易,而且不会影响到业务模型。
11. MVC design pattern brings about better organization and code reuse
1. 新框架学习成本的提高
2.
DI
http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx
http://www.techrepublic.com/article/mvc-design-pattern-brings-about-better-organization-and-code-reuse/1049862