`
zhoushuping
  • 浏览: 45050 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java设计模式的综述

阅读更多
自从J2EE出现以来就大大简化了在Java下企业级开发但是随着J2EE越来越普遍地被应用到各个领域中开发者们渐渐意识到需要种思路方法来标准化应用开发过程他们采用思路方法是标准化应用结构层在结构层通常封装了些独立于业务逻辑复杂技术以便在业务逻辑和底层架构的间建立起弱连接在个专题中将会介绍些设计模式通过利用这些设计模式开发人员可以达到标准化和简化应用开发过程目
  
应用结构和J2EE
  
J2EE是个很成功技术它为些基本任务提供了致标准例如数据库连接、分布式应用等但是使用J2EE并不能保证开发人员开发出成功应用有些人认为J2EE本身就是种框架技术但是这种认识是不正确我们应该意识到J2EE并没有提供个能够帮助开发人员开发出高质量应用框架因此很多有经验开发人员通过利用设计模式来弥补这缺项
  
设计模式
  
在开发人员圈子中大家通过相互交流在开发过程中所遇到问题以及解决思路方法来丰富整个圈子经验而设计模式就是在这样情况下产生个设计模式必然是针对某个特定问题这个问题解决方案以及这样解决问题产生后果在解决利用J2EE进行开发中出现问题过程中人们把设计模式分为两类种是通用开发模式种是为了解决特定 J2EE问题模式下面让我们来看看每种类型开发模式都包含了哪些内容
  
J2EE设计模式
  
J2EE设计模式在过去几年中随着Java开发人员经验不断成长而发展这些设计模式是针对使用各种J2EE技术
时可能出现问题提出它们能够帮助开发人员构造出应用框架要求例如Front Controller(前端Control控件)模式
将servlet代码开发转化为在图形用户界面下开发但是需要记住J2EE设计模型解决了那些在J2EE项目中最可能出
现问题如果你在J2EE遇到问题很特殊很有可能没有相应设计模型来解决它
  
软件Software开发设计模式
  
软件Software开发设计模式又被分为两种种是通用面向对象设计模式例如工厂(Factory)模式是种面向对象设计模式它将对象创建封装起来使对象能够重用这样就可以减少占用系统资源而另种是基于Java设计模式这些设计模式要么是和Java语言特性结合得很紧要么是面向对象技术在Java中深化不要以为软件Software设计模式相对独立于J2EE就认为它们不重要通常它们比J2EE设计模式更重要这是:

   1. J2EE设计模式是近几年才出现并且在不断变化而软件Software开发设计模式经过了长时间考验比前者更加成熟和完善;
   2. 有些J2EE设计模式是建立在某些软件Software开发设计模式的上;
   3. 软件Software开发模式为J2EE设计模式提供了坚实基础它应用将影响到整个结构稳定性和可扩充性

在实际应用中设计模式并不是段具体代码设计模式通常是在设计介绍说明书中描述将设计模式应用到系统中真正挑战在于如何在系统中应用模式中思想这些思想必须被应用到恰当环境中
根据设计模式所解决问题又可以分为以下几个类型:

    * 创建类型:创建类型模式都是用于创建类例子但是和通过来创建例子区别这些模式提供了更加灵活方式是能够根据特定情况创建特定类
    * 结构类型:结构类型模式帮助开发人员将简单对象组合在起以后更加复杂结构
    * 行为类型:行为类型模式帮助开发人员控制类的间通讯

创建类型模式
  
所有创建类型模式都和如何有效地创建类例子相关在Java中如果开发人员要生成个类例子最简单思路方法是使用关键字:
  MyFoo = Foo; // 生成个Foo例子
  
这种思路方法只能够在中生成固定类但是在很多情况下需要根据区别情况生成区别类例子这就需要将例子生成过程抽象到个特殊创建类中由该类在运行时决定生成哪种类例子这样使得有更好灵活性和通用性

创建类型模式包括:


    * 工厂模式(Factory Pattern):根据工厂模式实现类可以根据提供数据生成组类中某个类例子而这组类有个公共抽象父类
    * 抽象工厂模式(Abstract Factory Pattern):抽象工厂模式也可以根据提供数据生成组类中某个类例子而这组类有个公共抽象父类只不过它定义是个接口
    * 构造者模式(Builder Pattern):构造者模式将个复杂对象构造过程和它表现层分离开来这样类就可以根据区别情况展现出区别表现方式
    * 原型模式(Prototype Pattern):原型模式通过对类例子进行拷贝来创建新例子
    * 单模式(Singleton Pattern):根据单模式实现类只允许有个是类并且提供了个全局指针来引用该例子

结构类型模式

结构类型模式将类和对象组合起来以构成更加复杂结构它又被划分为类模式和对象模式类模式和对象模式的间区别在于类模式通过继承关系来提供有效接口;而类模式通过对象合成或将对象包含在其它对象中方式构成更加复杂结构
  
结构类型模式包括了以下模式:

    * 适配器模式(Adapter Pattern):适配器模式可以将个类接口和另个类接口匹配起来
    * 桥梁模式(Bridge Pattern):桥梁模式对客户端提供个固定接口但是允许开发人员变化实际实现类这样开发人员就可以将接口是具体实现类分离开来
    * 复合模式(Composite Pattern):复合模式可以将多个对象进行复合其中每个对象可以是简单对象也可以是复合对象
    * 代理模式(Proxy Pattern):代理模式利用个简单对象替代个复杂对象当复杂对象在需要时候才会被加载到系统中这样可以节约系统资源提高系统响应速度在网络环境中这种模式很有用处
    * 修饰模式(Decorator Pattern):通过修饰模式开发人员可以在运行时将特定功能绑定在对象上
    * 轻量模式(Flyweight Pattern):轻量模式通过将对象中部分数据保存在对象外在对象中思路方法时再将这些数据传回对象这样做可以减少大量比较简单对象占用空间
    * 正面模式(Fa?ade Pattern):正面模式将复杂类层次结构组织起来通过个简单接口来获得层次结构中数据

行为类型模式
  
行为类型模式主要是那些处理对象的间通讯模式该类型包括以下模式:

    * 观测者模式(Observer Pattern):观测者模式可以在发生变化时将变化通知多个类
    * 中介模式(Mediator Pattern):中介模式可以通过个中间类来控制若干个类的间通讯并且这些类相互的间不需要了解对方信息
    * 回忆模式(Memento Pattern):回忆模式可以在不破坏对象封装性前提下保存和恢复对象内部状态
    * 职责链模式(Chain of Responsibility):职责链模式将请求传递给组对象只有特定对象才会处理该请求这样就进步削弱类的间联系
    * 命令模式(Command Pattern):命令模式将请求传递给特定对象这样客户端即使在不知道服务器端如何处理请求情况下也可以发送请求
    * 模板模式(Template Pattern):模板模式提供了对算法抽象定义
    * 策略模式(Strategy Pattern): 策略模式定义了组算法将每个算法都封装起来并且使它们的间可以互换策略模式使这些算法在客户端它们时候能够互不影响地变化
    * 访问者模式(Visitor Pattern):访问者模式通过个访问类来访问其他类中数据
    * 状态模式(State Pattern):状态模式将个类例子变量保存在独立内存空间中
    * 迭代模式(Iterator Pattern):迭代模式在不知道数据内部表现形式前提下通过标准接口来遍历数据集合中数据
分享到:
评论

相关推荐

    Java Web Framework综述

    MVC模式是Java Web开发中广泛采用的设计模式。Model代表业务逻辑和数据,View负责显示数据,而Controller作为两者之间的桥梁,接收用户请求,处理后转发给适当的Model,最后更新View。这种分离使得代码结构清晰,...

    JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip

    在系统设计阶段,可能会采用MVC(Model-View-Controller)设计模式,以实现良好的代码组织和解耦。数据库设计通常包括试题库管理、用户信息存储等功能。界面设计则强调用户体验,力求简洁易用。 源代码部分是此资源...

    基于Java的“博客”论坛系统的设计与实现文献综述.pdf

    《基于Java的“博客”论坛系统的设计与实现》是一篇探讨使用Java技术构建博客论坛系统的文献综述。本文主要从博客的基本概念、特点以及技术背景出发,深入剖析了基于Java的博客论坛系统的设计理念和实现过程。 首先...

    java Web系统架构综述

    MVC框架是一种广泛应用于Web开发的设计模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个组成部分: - **模型**(Model):负责管理应用程序的数据和业务逻辑。 - **视图**(View):...

    JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).rar

    2. **MVC设计模式**:模型-视图-控制器(Model-View-Controller)是用于构建用户界面的常见架构模式。在这个考试系统中,模型负责数据处理,视图负责用户交互,控制器处理用户请求并协调模型和视图。 3. **数据库...

    基于Java的影视创作论坛的设计与实现

    3. **MVC模式**:理解模型-视图-控制器设计模式,如何将业务逻辑、数据显示和用户交互分离,提高代码可维护性。 4. **Web容器**:如Tomcat或Jetty,它们提供运行Java EE应用的环境,管理Servlet和JSP的生命周期。 ...

    基于Java WEB的人事信息系统毕业设计

    本项目的核心部分可能采用了MVC(Model-View-Controller)设计模式,这是一种广泛应用于Web开发的架构模式,有助于保持代码结构清晰,提高可维护性和可测试性。Model代表业务逻辑和数据模型,View负责展示数据,而...

    JAVA语言考试系统的设计与实现(文档+源代码+文献综述+外文翻译+开题报告).zip

    这个压缩包中的内容主要包括论文、源代码、文献综述、外文翻译和开题报告,为深入理解JAVA语言在考试系统设计中的应用提供了全面支持。 首先,论文部分详细阐述了JAVA语言在开发考试系统时的关键技术和方法。JAVA以...

    Java毕业设计-JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).rar

    2. **MVC(Model-View-Controller)设计模式**:在系统设计中,MVC模式被广泛应用于构建应用程序的架构。模型负责数据处理,视图负责显示,控制器则协调两者,使系统结构清晰,易于维护和扩展。 3. **Servlet和JSP*...

    java文献综述.docx

    【Java文献综述】 本文档主要讨论了一个基于SSM(Spring、Spring MVC、MyBatis)框架构建的长沙旅游攻略平台的设计与实现。该系统旨在利用网络的高效性和互联性,提升旅游行业的管理效率,适应个性化旅游需求的增长...

    Java 项目-java的JAVA语言考试系统的设计与实现(源代码+文献综述+外文翻译+开题报告).zip

    2. **MVC(Model-View-Controller)设计模式**:该系统很可能采用了MVC架构,这是一种常用在Web应用中的设计模式,用于分离业务逻辑、数据模型和用户界面。Model负责数据处理,View负责展示,Controller处理用户交互...

    基于Java的即时通讯系统设计与实现【文献综述】.doc

    Java的Socket通信机制为客户端和服务器之间提供双向通信,支持有连接和无连接两种模式,适应不同应用场景的需求。有连接方式确保了数据的可靠性,无连接方式则降低了系统开销,但不保证数据传输的可靠性。 【Java...

    se Java 设计架构

    通过综合分析软件工程思想,讨论了多层J2EE架构,并介绍了几种常用的Java设计模式以及Java反射技术在实际开发中的应用。 #### 第一章:前言 本章简要介绍了文章的研究背景和目的。随着信息技术的发展,企业应用的...

    JAVA语言考试系统项目模块的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip

    JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统; J2EE;毕业设计 JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统; J2EE;毕业设计 JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统;...

    java毕业设计-JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).zip

    文献综述文档会详细列举和分析前人在此领域的研究成果,对比不同设计方案的优缺点,为本次设计提供理论依据。 开题报告是项目启动时的规划文档,包括选题理由、研究目标、预期成果、技术路线和时间安排等,确保项目...

    java网站课程设计

    【标题】:“Java网站课程设计”是一门针对Java编程语言在构建网站应用方面的实践课程,旨在教授学生如何利用Java技术进行完整的网站开发。这通常包括前端界面设计、后端服务实现以及数据库交互等多个环节。 【描述...

    Java服务器程序设计

    15.1 安全综述[/font] 15.1.1 常见的攻击形式[/font] 15.1.2 java web server的安全机制[/font] 15.1.3 其他特点[/font] 15.1.4 unix上的独有特点[/font] 15.2 web realm机制[/font] 15.2.1 realm模型[/font] 15.2.2...

    基于软总线的JAVA应用环境的设计与开发文献综述

    ### 基于软总线的JAVA应用环境的设计与开发文献综述 #### 软总线中的分布技术 在当今快速发展的信息技术领域,软总线作为一种新兴的技术,正在逐步改变传统的软件开发模式。软总线的核心在于它能够提供一个标准化...

    基于java课件管理系统的文献综述.doc

    "基于java课件管理系统的文献综述" 在当今信息化的时代,基于Java课件管理系统的文献综述具有非常重要的意义。这篇文献综述主要介绍了课件管理系统的概念、发展和应用,及其对教育系统的影响。 首先,课件管理系统...

Global site tag (gtag.js) - Google Analytics