J2EE的体系结构和MVC设计模式

J2EE规范提出了自己的n-tiers结构。

在普通应用中,我们大多会按如下方式划分:

表示层:管理用户的请求,对用户的请求做出相应的响应,并向用户显示出相应信息。Struts框架在表示层可以对用户的请求进行处理,有控制器可以调用下层业务逻辑,可以对异常进行处理,以及对用户输入的信息进行验证。表示层还可以选择Velocity、JSF等。

业务逻辑层:负责业务逻辑的实现。Spring框架在业务逻辑层可以处理应用程序的业务逻辑、业务校验、对事务进行管理、管理业务层中各个对象的依赖关系,执行相应的业务程序来实现业务服务。

持久层:负责对数据库的访问。Hibernate框架在持久层为JAVA提供了面向对象的持久化机制和查询服务。可以采用面向对象的方法存储、更新、删除数据库的记录,以及查询数据库信息。持久层还可以选择ibatis等

数据层:用来存放业务数据,供上层调用,主要指一些数据库系统。

 

经典的ssh(Struts、Spring、Hibernate)这3个框架功能各不相同,根据Web应用的功能层次,可将这3个框架应用到不同的层次,最终来实现各层的功能以完成集成。

Struts应用在表示层、 Spring应用在业务逻辑层、Hibernate在持久层。

 

 

说到J2EE的分层结构,就不得不说说MVC设计模式。

MVC设计模式使“模型”、“视图”、“控制”相分离,降低了组件之间的耦合性,同时“模型”组件可以被系统中的其他组件重复利用,提高了代码的可重用性。

模型Model:独立的组件、或者开发模块。在应用中负责业务逻辑的处理。模型将业务逻辑封装成独立的模块,而且提供给不同的开发者使用。而且这些独立的模块可根据需要进行组装。

视图View: 代表和用户交互的界面。视图负责 显示从模型中采集的数据或用户输入的数据 和 请求的传递,将这些数据和请求传递给控制器和模型。

控制器Controller:负责将视图的需求分发给视图所依赖的所有模型,并在模型做了改变后,把这种改变分发到模型对应的所有视图中,视图中的内容会随之改变。一个视图可以依赖多个模型,一个模型可以对应多个视图。

总之,MVC设计模式的原理是:当有事件发生时,View将客户端请求发送给Controller,Controller将会改变Model或View。如果Controller改变了Model的数据,所有依赖Model的View都会被Controller通知,View会对Model进行状态查询,Model会对状态查询做出相应并通知视图进行改变。同样,如果Controller改变了View,View会从依赖的Model中获取相关数据并刷新View本身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式的好处在于可以重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式提供了一个标准的术语系统,且具体到特定的情景。合理地运用设计模式可以完美地解决很多问题,每种模式在现实都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案。根据参考书《Design Patterns - Elements of Reusable Object-Oriented Software》所提到的,总共有23种设计模式,可以分为三大类:创建型模式、结构型模式和行为型模式。其,创建型模式关注对象的创建过程,结构型模式关注对象的组合,行为型模式关注对象之间的通信和交互。常见的设计模式包括但不限于: 1.创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式、代理模式。 3.行为型模式:责任链模式、命令模式、解释器模式、迭代器模式、介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。 另外,还有一类设计模式J2EE设计模式,主要用于解决企业级应用程序开发的问题。常见的J2EE设计模式包括但不限于:MVC模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值