快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱最好h88285愽娱:J2EE应用中常见的反模式(antipatterns)



J2EE利用中有一些常见的搭档和差错的不雅念,按照时下盛行的说法,叫反模式。稍不留意,我们自己也会犯,以是大年夜概收拾一下,一个是备忘,也是供必要的同伙参考:

1- 无EJB不叫J2EE

EJB不停成长到本日的2.1仍旧被广为诟病,它供给了很多时刻我们并不必要的器械,而且我们在很多环境下一旦选用EJB就没有其他的要领不去应用那些粗笨的功能。然则很多所谓典型让我们有一种错觉,似乎不用和记娱最好h88285愽娱EJB就不是J2EE利用。有一些折中的规划是应用Session Fa?ade模式,Entity Bean采纳BMP + 本地接口,然后供给一层无状态的Session Bean,采纳远程和本地接口,这样的设计模式,我想,多数是出于无奈。如今,以致我们常常都能看到不应用EJB的谈吐,炒得很火的Spring则为这种完全不用EJB开拓J2EE项目供给了实际的、强有力的佐证。

2- 过度分层

J2EE这个规范肤浅的来看,便是为我们定义了很多“层”,然后还有很多分工明确的“角色”,加上J2EE的底本利用法度榜样就分了很多“层”,以至于大年夜家都感觉J2EE的利用就应该是很多层的,着实不然,必要详细环境详细阐发。

3- 频繁的来回调用

EJB的看似简单造成我和记娱最好h88285愽娱们常常轻忽可能在应用历程中呈现的远程调用,比和记娱最好h88285愽娱如无意偶尔候为了更新一笔记录,每个字段都是远程的去set,大年夜大年夜增添了不需要的开销,于是我们和记娱最好h88285愽娱意识到在调用中应用DTO是一个建议遵照的规划。

4- 过度应用有状态的Session Bean

一样平常来讲,一个Session Bean实例,假如它是有状态的,那么它只对某个固定的用户办事,假如是无状态的,则可以满意不合用户的调用。这有点类似(只是有点类似)一个类的静态措施和非静态措施的差别。我们在实际利用中,应该只管即便避免应用有状态的Session Bean,除非分外需要。我们可以把状态保留在Session Bean和记娱最好h88285愽娱之外,如Web容器的session工具或者我们自定义的类中,而不是完全依附有状态的Session Bean去帮我们做。

5- 过度会话

Web容器的session工具是个好器械,用起来也很方便和刀切斧砍,这造成了我们很多人对它的滥用,什么器械都往里面放。这有两个凸起的问题,一个是资本挥霍;另一个,万一Web办事器崩溃,那些原先必要持久化的数据就损掉了。我们必要斟酌好,哪些数据本可以用request的,哪些数据又是必要持久化到数据库的,等等,不能一味依附session。

6- 万能Servlet或者万能JSP

J2EE为我们供给了Web层富厚的技巧选择,Servlet或者JSP都只是此中一种,虽然它很强大年夜,然则也不应该由它一个来承担所有MVC三个部分的功能。现实中我们的Struts很好的规范了这个问题:Servlet认真调整,专门的Action认真处置惩罚逻辑,而JSP用于用户界面显示。JSP和Servlet本色上是同一个器械,只是从不合的角度来处置惩罚问题,它们各有千秋,互为弥补。

您可能还会对下面的文章感兴趣: