要求

请结合某Web应用系统,分析MVC的优缺点及在项目中的应用情况,分别列出属于M、V和C层的文件并简要描述各文件的作用。


1、MVC 理论

1.1 MVC概念

       MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。

1.2 MVC优点

1.耦合性低
       视图层和业务层分离,允许更改视图层代码不用重新编译模型和控制器代码。
2.重用性高
       MVC模式允许使用不同样式的视图访问同一个服务器端的代码。
3.部署快,生命周期成本低
       MVC使开发和维护用户接口的技术含量降低。它使程序员集中精力于业务逻辑,界面程序员集中精力于表现形式上。
4.可维护性高
       分离视图层和业务逻辑层也使得Web应用更易于维护和修改。

1.3 MVC缺点

(1)增加了系统结构和实现的复杂性。
       对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2)视图与控制器间的过于紧密的连接。
       视图与控制器是相互分离,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
(3)视图对模型数据的低效率访问。
       对于没有变化的数据多次访问降低系统性能。


2、MVC项目实例分析

以eshop线上电子书城为例 分包如下图:
在这里插入图片描述

2.1 模型层(Model)

模型层包括业务逻辑层、持久层以及JavaBean

在这里插入图片描述

M层对应的文件有:

Service层:业务处理,调用数据访问层与数据库进行交互
UserService.java:对用户注册、登录信息处理,调Dao层写入数据库
GoodsService.java:根据需求进行商品处理,调用dao层写入数据库

DAO层:它与数据库进行交互,封装了对数据库的CURD操作。
UserDao.java、GoodsDao.java:有关用户信息和商品信息的操作
User.java、Goods.java:提供用户和商品的数据存储结构

2.2 视图层(View)

视图层view:用于展示数据,与用户进行交互。

在这里插入图片描述

商店在线销售系统中V层对应的文件有:
login.jsp:展示登录信息,用户填用户名和密码并登录。
register.jsp:展示注册信息,用户填写用户名,密码,确认密码,手机号进行注册。
myAccount.jsp:登陆后对个人账户信息进行展示。
pay.jsp:支付页面,可以选择支付方式以及银行卡等
product_list.jsp:展示商品信息,包括名称、价格等信息

2.3 控制层(Controller)

用于分发控制到来的请求,并将请求分发给相应的业务层。以及将数据返回给视图层展示。

在这里插入图片描述

商店在线销售系统中C层对应的文件有:
LoginServet.java:页面的用户登录请求转发UserService.java,经过处理后将数据返回视图层展示。
CreateOrderServlet.java:用于创建订单的ServletPayServlet.java:模拟付款的Servlet

总结

       通过对MVC的学习,我们了解MVC架构的原理以及其工作路程,在对MVC架构优缺点的评价中我们明白MVC架构也并非完美无缺的,所以在日后开发项目的中,充分了解MVC架构的原理,根据项目的实际需要判断是否需要使用MVC来搭建程序框架。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐