Java中的MVC模式和三层架构



Java中的MVC模式和三层架构

这里主要介绍下我对java中的mvc模式的理解。我觉得说到mvc还要说一下常说的三层结构。

三层架构:

说到mvc,先说说三层架构吧,通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(SERVICES)、数据访问层(DAO)(data access object)。

表现层实一般就是H5界面了,业务层实现的代表作品是Spring,持久层实现的代表作品是Mybaties。层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。每层只与上下相邻的两层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。分层之后灵活性提高,也便于团队分工开发。

 

MVC和三层架构的区别和联系:

MVC Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。mvc可以是三层中的一个表现层框架,属于表现层。三层和mvc可以共存。三层是基于业务逻辑来分的,而mvc是基于页面来分的。

MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成MVC(Model View Controller)模型-视图-控制器。

 

 主要功能:

在一般的Java程序中,action 是业务层的一部分,是一个管理器(作用是取出前台界面的数据,转发到下一个action或者页面)。

模型层(model)一般是实体对象(如User类),作用是暂时存储数据方便持久化(存入数据库或者写入文件)。

dao是数据访问层,就是用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中。

总的说来:

Dao主要做数据库的交互工作;

Model是模型,存放你的实体类;

Service做相应的业务逻辑处理;

如果熟悉像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。

接下来说一下service的意义,其实因为你现在做东西分层次不是那么严格,在一个你做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。

至于你说的为什么要用service层封装,我认为:一般来说,某一个程序的有些业务流程需要连接数据库,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model层功能的体现。

Dao层:一般可以再分为Dao接口和DaoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法。

Service层:引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类

MVC架构模式三层架构都是常用的软件架构设计模式,用于分离不同层次的代码功能和职责。 MVC架构模式是一种软件设计模式,包括三个基本组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,视图负责用户界面展示,控制器负责处理用户输入和业务逻辑。MVC模式通过将不同的功能分离到不同的组件,实现了代码的解耦和可维护性的提高。 三层架构是一种软件系统的分层设计模式,通常包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层负责用户界面的展示和交互,业务逻辑层负责处理业务逻辑和数据处理,数据访问层负责与数据库进行数据交互。三层架构通过将不同层次的功能分离,实现了代码的复用和可扩展性的提高。 MVC架构模式三层架构有相似之处,都是通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。同时,三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写,以便于整体架构的灵活性和可替换性。 总结来说,MVC架构模式三层架构都是常用的软件架构设计模式,通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MVC模式三层架构](https://blog.csdn.net/bb_111/article/details/127279845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java MVC模式三层架构](https://blog.csdn.net/jjw_zyfx/article/details/127703245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ah_ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值