【JavaWeb】基于Web项目的MVC模式分析
MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。...
文章目录
要求
请结合某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:用于创建订单的Servlet。
PayServlet.java:模拟付款的Servlet。
总结
通过对MVC的学习,我们了解MVC架构的原理以及其工作路程,在对MVC架构优缺点的评价中我们明白MVC架构也并非完美无缺的,所以在日后开发项目的中,充分了解MVC架构的原理,根据项目的实际需要判断是否需要使用MVC来搭建程序框架。
更多推荐
所有评论(0)