`
pterodactyl
  • 浏览: 766630 次
  • 性别: 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是如何设计和实现的。每个人看问题的角度是不一样 的,不管您从哪个角度来看,我相信你都会从中获得营养。

分享到:
评论

相关推荐

    从追MM浅谈Java的23种设计模式

    Java的23种设计模式是软件工程中的一种经典思想,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种项目中。设计模式并不是特定的代码或库,而是对在特定情境下,如何组织代码和交互的一种描述。这些模式是...

    浅谈Java中单例设计模式之构造方法私有化.pdf

    "浅谈Java中单例设计模式之构造方法私有化" 单例设计模式是 Java 中一种常用的设计模式,核心思想是将类的构造方法私有化,以控制实例化对象的产生。这种模式可以确保在程序中只有一个实例化对象存在,这对控制对象...

    浅谈项目教学法在JAVA语言教学中的应用.zip

    在Java教学中,这种方法可以将抽象的编程概念与实际问题相结合,让学生在解决具体问题的过程中深入理解Java语言的特性和用法。 首先,项目教学法强调实践性。学生需要参与到实际项目中,例如创建一个简单的图书管理...

    设计模式浅谈1——策略模式

    在实际应用中,策略模式常用于框架设计、游戏逻辑、数据分析等领域。例如,一个电商系统在结算时,可以有不同的优惠策略,如满减策略、折扣策略等,这些策略都可以通过策略模式来实现,使得在运行时可以根据用户的...

    浅谈ORACLE中基于JAVA的存储查询优化.pdf

    Oracle数据库是业界领先的大型关系型数据库管理系统(RDBMS),广泛应用于企业级应用中,具备高可用性、高扩展性和高性能的特点。在数据库中融入JAVA技术,主要是利用JAVA的平台无关性、面向对象编程的特点以及强大...

    浅谈Java编程中的单例设计模式

    在Java编程中,单例设计模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和销毁对象,或者对象创建代价较大,且需要全局共享资源时非常有用。在日志工具类的场景...

    浅谈形成性评价在Java企业框架技术教学中的应用

    例如,对于理解较快的学生,可以推荐更高层次的框架应用和设计模式;对于需要更多帮助的学生,可以提供额外的辅导和支持。 3.2 连续反馈与指导在教学过程中,教师可以定期进行形成性评价,如小测验、项目进展检查和...

    漫谈设计模式代码

    《漫谈设计模式》这本书深入浅出地介绍了多种设计模式,通过代码实例帮助读者理解和应用这些模式。在这个压缩包“ramblingonpatterns-1.0”中,你将找到书中的代码示例,它们覆盖了各个章节的关键知识点。 1. **...

    浅谈JAVA设计模式之享元模式

    "浅谈JAVA设计模式之享元模式" JAVA 设计模式中的享元模式(Flyweight Pattern)是一种结构型设计模式,主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式提供了减少对象数量从而改善应用...

    浅谈java连接池

    Java 连接池是一种优化数据库访问效率的机制,它解决了在Web应用程序中频繁建立和释放数据库连接所导致的性能问题。随着B/S架构的广泛应用,Java应用程序通过JDBC(Java Database Connectivity)与数据库进行交互。...

    浅谈Java中正则表达式的优化方法

    ### 浅谈Java中正则表达式的优化方法 在日常的软件开发过程中,正则表达式作为一种强大的文本处理工具被广泛应用于数据验证、文本搜索与替换等场景之中。尤其是在Java语言环境中,`java.util.regex`包提供了丰富的...

    浅谈spring中用到的设计模式及应用场景

    浅谈Spring中用到的设计模式及应用场景 Spring 框架是 Java 企业级应用程序的核心组件之一,它提供了强大的功能和灵活的架构来简化企业级应用程序的开发。Spring 框架使用了多种设计模式来实现其功能,本文将对 ...

    浅谈java!

    在IT行业中,Java作为一门历史悠久且广泛应用的编程语言,一直以来都是学习者们的首选之一。本文基于给定的文件信息,详细阐述Java自学过程中的一些关键知识点及学习策略,旨在帮助那些希望通过自学Java来提升技能或...

    浅谈Java手机应用开发课程建设.pdf

    "浅谈Java手机应用开发课程建设" 在本文中,我们将讨论Java手机应用开发课程的建设,旨在提高学生的就业率和实践能力。本课程通过分析Java手机应用开发的岗位、典型的工作过程和工作任务,总结出主要的能力要求和...

    浅谈《Java程序设计》在民族类高校中的教学改革与实践.pdf

    这些是实际应用中不可或缺的技能。 文章提出了根据民族类高校学生特点,理论教学和实践培训的改革方案,旨在改善学生的实际动手能力,提高Java程序设计课程的教学质量。具体改革措施可以包括增加项目导向的教学模式...

    java之浅谈深说--教你如何成长

    ### Java之浅谈深说——教你如何成长为Java编程高手 在IT行业中,Java作为一种广泛使用的编程语言,其重要性不言而喻。对于希望成为Java编程高手的学习者来说,掌握正确的学习路径至关重要。本文将根据提供的标题、...

    浅谈java代理机制 .txt

    ### 浅谈Java代理机制 #### 一、引言 在深入探讨Java代理机制之前,我们首先需要了解代理模式的基本概念及其应用场景。代理模式是一种结构型设计模式,它为其他对象提供了一种代理以控制对这个对象的访问。在Java...

    Java 设计模式

    - **从招式与内功谈起**:这部分内容旨在通过比喻的方式,帮助读者理解设计模式的本质及其在实际开发中的应用价值。招式指的是具体的编码技巧,而内功则是对设计模式背后的原理的理解。 #### 三、面向对象设计原则 ...

    浅谈Java语言程序设计课程的教学改革方法与措施.pdf

    Java语言程序设计课程的教学改革是当前教育领域的热点问题之一,传统教学模式已经不能完全满足现代教育和市场需求,因此,如何在保持理论教学的同时增强实践教学,是本篇论文所要探讨的焦点。 首先,Java语言因其...

Global site tag (gtag.js) - Google Analytics