`
pterodactyl
  • 浏览: 748131 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

浅谈设计模式在JAVA中的具体运用

    博客分类:
  • java
阅读更多

浅谈设计模式在JAVA中的具体运用

作者:false  2007-05-22 网友评论 1 条
内容导航:
第1页

IT168技术文档】

    前言

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

    里面讲解的例子是用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的内容, 这下各位可有福了,由于本人的水平实在不怎么样,这些模式我能说多少就是多少了,现在整个社会都在编故事,讲故事。。。。。。如果看我的写的实在不像话, 那你就当看个故事了:)也有可能说说就跑题了。

     分类

    根据模式的目的将23种模式分为三类:创建型(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设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    design-pattern-java.pdf

    设计模式综合应用实例 设计模式综合应用实例 多人联机射击游戏 多人联机射击游戏中的设计模式应用(一) 多人联机射击游戏中的设计模式应用(二) 数据库同步系统 设计模式综合实例分析之数据库同步系统(一) 设计...

    07系统分析师论文20篇

    MVC设计模式在WEB应用程序中的研究与实现.pdf 不可忽视的软件需求分析.pdf 企业信息化网络规划.pdf 使用实例获取软件需求的方法.pdf 信息化校园网络.pdf 利用XMLHTTP技术进行资源整合的研究与实现.pdf 基于JAVA/XML...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    JAVA自学之路

    在JavaSE完成之后,可以试着完成一些小项目,同时关注一下设计模式的内容,不必强求自己能够完全掌握各种细节,往前走吧。 掌握一种编程工具,比如说Eclipse。 数据库,可以选择使用Oracle或者MySQL开始 。 JDBC...

    我的编程感悟(中文PDF)(共37M二分卷)分卷二

    8.2.4 脏矩形在3D游戏界面中的运用 224 8.2.5 时间和空间的权衡 229 8.2.6 关于估算 230 8.3 自己设计精灵格式 231 8.4 动态数据加载 234 8.5 小结 236 第9章 C 和 C++ 237 9.1 从C到C++ 239 9.2 C vs C++,效率至上...

    我的编程感悟(中文PDF)(共37M二分卷)分卷一

    8.2.4 脏矩形在3D游戏界面中的运用 224 8.2.5 时间和空间的权衡 229 8.2.6 关于估算 230 8.3 自己设计精灵格式 231 8.4 动态数据加载 234 8.5 小结 236 第9章 C 和 C++ 237 9.1 从C到C++ 239 9.2 C vs C++,效率至上...

    Hadoop实战中文版.PDF

    人民邮电出版社出版时间:2011年10月版次:1.1开本:16开装帧:平装字数:417千字页数:253页内容简介编辑作为云计算所青睐的分布式架构,Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行...

    Python核心编程第二版(ok)

     6.8.6 把Unicode应用到实际应用中   6.8.7 从现实中得来的教训   6.8.8 Python的Unicode支持   6.9 相关模块   6.10 字符串关键点总结  6.11 列表   6.12 操作符   6.12.1 标准类型操作符  ...

    Python核心编程第二版

     6.8.6 把Unicode应用到实际应用中   6.8.7 从现实中得来的教训   6.8.8 Python的Unicode支持   6.9 相关模块   6.10 字符串关键点总结  6.11 列表   6.12 操作符   6.12.1 标准类型操作符  ...

    游戏之旅--我的编程感悟【有目录】

    顾,它们如今已经沉寂在历史中, 或是被Windows 掩盖。但是, 作 为喜爱创根l河底的程序员,我们有 必要对Window s 之前的时代有一 些了解。 XIV 3.1 C 语言................................................, .. ,...

Global site tag (gtag.js) - Google Analytics