由一道题目融会贯通21种javaEE模式

来源:互联网 发布:java 数组做形参 编辑:程序博客网 时间:2024/05/12 11:59

声明:只要你是java程序员,不管你有没有接触过javaEE模式,这篇文章都适合你看。

说到javaEE模式,很多人会想到设计模式,但两者毕竟是不同的:

1)javaEE模式是架构模式,架构模式和设计模式都是用来提高软件系统灵活性(Flexibility),架构模式更侧重的是系统总体和层次间的灵活,设计模式更侧重的是局部功能模块的灵活。

2)javaEE模式大部分是基于设计模式之上的,如javaEE模式中的拦截过滤器模式(Intercepting Filter)就是一种装饰模式(Decorator Pattern)的体现,再如javaEE模式中的Session Facade模式就是一种门面模式(Facade Pattern)的体现。

 

我很了解,GoF的23种设计模式已经让程序员学的欲仙欲死了,这突然有了所谓的21种javaEE模式,简直撞墙的心都有了。哈,其实javaEE模式比设计模式好学,原因在于:

1)javaEE模式主要是一种架构上的思想,具体实现形式非常简单。

2)平常我们不知不觉中已经用过很多javaEE模式了,比如BO(Bussiness Object);DAO(Data Access Object);TO(Transfer Object),传说中的DTO就是TO;Demain Stroe,相当于持久层框架,如Hibernate,如JPA。

3)javaEE模式在特定的场合就是特定的选择其中的某一种,而且几乎没有变体,所以当需求符合时,基本直接套用就行。

 

接下来,我通过一张图将21种javaEE模式进行融会贯通,也期望能给读者一定的启示,前提是你知道或者你可以查得到21中javaEE模式的概念来对号入座。

 

我们来看一道题目:

 

如果读者接触过javaEE模式的设计,可以先想想再看我后面的设计图。如果读者对javaEE模式不是很了解,也没关系,下面的图里包含了全部21种javaEE模式,没看懂的可以去查找资料,再回到图中对号入座。

 

以下是设计图的链接,由于图太宽,屏幕放不下,只能放其他地方了,ctrl+滚轮可以放大图(组件图):

http://wubinyu.5d6d.net/viewthread.php?tid=92&page=1&extra=#pid289

 

在展示了设计图之后有几点我需要声明一下:

1)此设计图过度设计,而且过度的有点过分,读者完全可以用很简单的几种javaEE模式和组件就可以表达清楚题目的需求。

2)我这张设计图不是单纯为了完成题目需求而设计的,我这张设计图是为了想方设法将几乎所有javaEE模式都包含进来而设计的。

3)这张图的作用不是教读者如何合理的设计,而是帮读者能较容易的记住21种javaEE模式的使用场合,能在碰到特定需求的时候将相应的javaEE模式进行对号入座。

原创粉丝点击