Java设计模式与应用浅谈

开发 后端
本文向您介绍Java设计模式和一些应用,作者根据自己学习Java设计模式的经验,结合具体实例对设计模式的概念与应用进行剖析。

最近一直在看《Design Patterns: Elements of Reusable Object-Oriented Software》这本书,不知道看过这本书的人是不是有摸不到头绪,无处下手的感觉, 书里面讲述的23种Java设计模式经常把我弄的一蹋糊涂,这本书不看个三、四遍以上是很难理解的, 而且即便看了几遍, 也是很难把握住精髓。

里面讲解的例子是用C++和SMALLTALK这两种OO语言。对于我这种对C++半生不熟的笨鸟来说, 难度是不是太高了些.而且例子的讲解并不能使读者融会贯通。

我看书的原则就是看不懂的话就过段时间再看,没听说过“大侠请重新来过”么。(而且我看书, 从来不对一本书感冒, 经常是讲同一类知识的书穿插着看。对于设计模式---中文版的好象只有这么一本,E文的倒有一些。)由于已经看了几遍, 对Design Pattern 结构,内容整体上都有了一定的了解,所以剩下的就该用实际的例子来帮我理解掌握Design Patterns。如果这时再返回头重新看书, 会有种山重水复疑无路, 柳岸花明又一村的感觉。(连点掌声都没有)

其实在JAVA中,到处可见Design Patterns,JDK是设计模式的典型应用。常用的AWT, 里面包含了AbstractFactory,Composite,Bridge, Strategy,Command,SINGLETON等等模式 我就不细说的啦, 有兴趣的朋友可以自己研究, 希望能把心得发给我一份, false@263.net, 我会感激的哭的…… ^_- , 迷时师度, 悟时自度。 共同学习进步么。 这里介绍几本关于设计模式的JAVA书先。《THE DESIGN PATTERNS JAVA COMPANION》《Thinking in Patterns with Java》 有兴趣的可以去找来看看。E文的. ( FALSE:不要急, 没看见我在酝酿情绪么, 君不见黄河之水天上来,奔流到海不 复回么,菩提本无树, 镜台亦非明)

实例剖析

Java是个庞大的体系,APPLET,APPLICATION ,JSP/SERVET,EJB,RMI,CORBA,嵌入式JAVA.......应用的范围很广。现在学习JAVA的,很多人都是从JSP入手的。不象97,98年那时是从applet,application开始。目前相当多的人单纯的为了学JSP而学JSP,Java的基础很薄, 可惜可叹。为了使大家对设计模式有所了解,体会DESIGN PATTERNS 在jsp/servlet的应用,进而扩展到java。这里采用JIVE做为例子。JIVE是基于JSP/SERVLET技术的FORUM,是个open source的software 产品。 到这里可以下载http://www.coolservlets.com/jive。 它的优秀性就不用我多说了。使用JSP/SERVLET做开发的人都知道。很多人都是靠研究它入门的。 NOTE: 本文不是讲解JSP/SERVLET语法、具体实现和编程技巧。如果你需要这些,恐怕我会让你失望的, 还是请到google去search吧。这里主要是通过JIVE来解析THINKING IN DESIGN PATTERNS FOR JAVA . 包括对象的创建,对象和对象间的结构组合以及对象行为等。由于涉及很多OOP的概念,例如类,对象,继承,接口,抽象,封装等等这些乱七八糟的东东。如果对OOP和JAVA不太了解,建议请看《THINKING IN JAVA》这本书。

也有可能我写的内容里面会涉及到UML的内容, 这下各位可有福了,由于本人的水平实在不怎么样,这些Java设计模式我能说多少就是多少了。

分类

根据模式的目的将23种Java设计模式分为三类:创建型(Creational),结构型(Structural)和行为型(Behavioral)模式。

创建型(Creational):创建型模式是用来创建对象的。我们在coding时经常要对类进行实例化, 创建型模式就是提供提供各种不同的solution,从实例化的代码中去除硬编码(hard-coding), 从而使编码更加灵活和general, 适用于更复杂的行为。 ·Factory Method ·Abstract Factory Method ·Builder Pattern ·Prototype Pattern ·Singleton Pattern 结构型(Structural)

结构型模式处理类或对象的组合来获得更大的结构: · Adapter pattern · Composite pattern, · Proxy pattern, · Flyweight pattern, · Façade pattern, · Bridge pattern, · Decorator pattern, 行为型(Behavioral)

行为型模式处理类或对象如何交互 : Observer pattern · Mediator · Memento · Chain of Responsibility · Template pattern · Interpreter in a program. · Strategy pattern · Visitor pattern · State pattern · Command pattern · Iterator pattern

下面将对JIVE的内核来说说DESIGN PATTERNS

分析JIVE不是件容易的事情, 里面涉及OOP的东东很多,所以最好能使用工具。 欲善其事, 必先利其器。呵呵, 我用RATIONAL ROSE, 因为rose实现了UML,能很好 的把设计思路和各种类,接口,对象及之间的关系体现出来。我想通过类图和code结合来 看,这样会比只看code效果来的好。 (你也可以使用JBUILDER或j++, 不在于使用什么, 关键看哪个的项目管理方便。我用建模工具rose) 这里使用RATIONAL ROSE的一个功能----JAVA逆向转出工程 (我觉的通过这个功能和生成JAVA代码这个功能对我提高很大, 不管是掌握JAVA还是掌握UML&ROSE) FIRST,需要将JDK导入到rose里. 然后选择菜单TOOLS=>JAVA=>REVERSE ENGINEER JAVA 打开REVERSE ENGINEER JAVA窗口,选择JIVE里我们需要的servlet源码 逆向生成模型。当然你需要把classpath设置正确。 Jive里使用了很多的interface和abstract class, 这是面向对象里通常使用的。

为了code的复用和灵活性, DESIGN PATTERNS 的一个非常重要的原则:针对接口编程,而不是针对实现编程。第二个原则就是: 优先使用对象组合,而不是类继承。 2.2.1 com.coolservlets.forum package 这个package里包括很多class和interface。主要封装forum的基本操作。 (什么是class和interface? 呼呼。。。。。。趁我没还吐血你赶紧去查资料吧。) 不管是使用CGI、ASP还是PHP甚至JSP/SERVLET,我相信很多人或大或小,或简单或复杂, 都做过BBS。

那么建议大家看看JIVE是如何设计和实现这些Java设计模式的。每个人看问题的角度是不一样 的,不管您从哪个角度来看, 我相信你都会从中获得营养。

 

【编辑推荐】

  1. JSP设计模式中的两种常见模式
  2. 设计模式在EJB中的应用
  3. 探讨JSF框架中使用的设计模式
  4. J2EE设计模式之Template
  5. J2EE常用的设计模式
责任编辑:佚名 来源: 网络转载
相关推荐

2009-05-04 13:19:27

2020-06-08 08:04:49

设计模式结构型接口

2009-09-02 16:23:27

C# Singleto

2015-09-06 11:07:52

C++设计模式单例模式

2009-06-03 14:13:21

ibmdwWebSphere

2012-04-24 09:55:29

.NET

2009-06-24 17:05:10

2011-09-06 09:27:15

项目设计

2011-07-21 14:33:02

设计模式

2011-09-07 09:21:01

设计模式

2015-11-03 09:28:52

Hybrid技术设计实现

2009-07-14 11:08:42

WebRendererSwing应用程序

2009-03-11 09:33:11

Lotus开发Workflow

2009-02-17 18:17:42

2012-08-30 09:07:33

设计模式

2013-03-28 13:08:15

Web缓存

2014-12-29 10:39:16

JS

2010-07-28 15:21:00

NFSSolaris

2011-07-20 14:04:42

.NET策略模式

2009-06-22 14:06:00

java浏览器
点赞
收藏

51CTO技术栈公众号