自从J2EE出现以来,就大大简化了在Java下的企业级开发。但是随着J2EE越来越普遍地被应用到各个领域中,开发者们渐渐意识到需要一种方法来标准化应用程序的开发过程,他们采用的方法是标准化应用程序的结构层。在结构层通常封装了一些独立于业务逻辑的复杂技术,以便在业务逻辑和底层的架构之间建立起弱连接。在个专题中将会介绍一些设计模式,通过利用这些设计模式,开发人员可以达到标准化和简化应用程序开发过程的目的。
应用程序结构和J2EE
J2EE是一个很成功的技术,它为一些基本的任务提供了一致的标准,例如数据库连接、分布式应用程序等。但是使用J2EE并不能保证开发人员开发出成功的应用程序。有些人认为J2EE本身就是一种框架技术,但是这种认识是不正确的,我们应该意识到J2EE并没有提供一个能够帮助开发人员开发出高质量应用程序的框架,因此很多有经验的开发人员通过利用设计模式来弥补这一缺项。
设计模式
在开发人员的圈子中,大家通过相互交流在开发过程中所遇到的问题以及解决方法来丰富整个圈子的
经验。而设计模式就是在这样的情况下产生的。一个设计模式必然是针对某个特定的问题的,这个问题的解决方案以及这样解决问题产生的后果。在解决利用
J2EE进行程序开发中出现的问题的过程中,人们把设计模式分为两类,一种是通用开发模式,一种是为了解决特定的J2EE问题的模式。下面让我们来看一看
每一种类型的开发模式都包含了哪些内容。
J2EE设计模式
J2EE设计模式在过去几年中随着Java开发人员经验的不断成长而发展。这些设计模式是针对
使用各种J2EE技术时可能出现的问题提出的,它们能够帮助开发人员构造出应用程序框架的要求。例如,Front
Controller(前端控件)模式将servlet代码的开发转化为在图形用户界面下的开发。但是需要记住J2EE设计模型解决了那些在J2EE项目
中最可能出现的问题。如果你在J2EE遇到的问题很特殊,很有可能没有相应的设计模型来解决它。
软件开发设计模式
软件开发设计模式又被分为两种,一种是通用的面向对象设计模式。例如工厂(Factory)模式是一种面向对象的设计模式,它将对象的创建封装起来,使对象能够重用,这样就可以减少程序占用的系统资源。而另一种是基于Java的设计模式,这些设计模式要么是和Java的语言特性结合得很紧,要么是面向对象技术在Java中的深化。不要以为软件设计模式相对独立于J2EE就认为它们不重要,通常它们比J2EE设计模式更重要。这是因为:
1)J2EE设计模式是近几年才出现的,并且在不断变化,而软件开发设计模式经过了长时间的考验,比前者更加成熟和完善;
2)有些J2EE设计模式是建立在某些软件开发设计模式之上的;
3)软件开发模式为J2EE设计模式提供了坚实的基础。它的应用将影响到整个结构的稳定性和可扩充性。
在实际应用中,设计模式并不是一段具体的代码。设计模式通常是在设计说明书中描述。将设计模式应用到系统中的真正挑战在于如何在系统中应用模式中的思想。这些思想必须被应用到恰当的环境中。
根据设计模式的所解决的问题,又可以分为以下几个类型:
· 创建类型:创建类型的模式都是用于创建类的实例。但是和通过new来创建实例不同,这些模式提供了更加灵活的方式,是程序能够根据特定的情况创建特定的类。
· 结构类型:结构类型的模式帮助开发人员将简单对象组合在一起以后的更加复杂的结构。
· 行为类型:行为类型的模式帮助开发人员控制类之间的通讯。
创建类型的模式
所有创建类型的模式都和如何有效地创建类的实例相关。在Java中,如果开发人员要生成一个类的实例,最简单的方法是使用new关键字:
MyFoo = new 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):迭代模式在不知道数据的内部表现形式的前提下,通过标准的接口来遍历数据集合中的数据。
分享到:
相关推荐
MVC框架是一种广泛应用于Web开发的设计模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个组成部分: - **模型**(Model):负责管理应用程序的数据和业务逻辑。 - **视图**(View):...
在系统设计阶段,可能会采用MVC(Model-View-Controller)设计模式,以实现良好的代码组织和解耦。数据库设计通常包括试题库管理、用户信息存储等功能。界面设计则强调用户体验,力求简洁易用。 源代码部分是此资源...
《基于Java的“博客”论坛系统的设计与实现》是一篇探讨使用Java技术构建博客论坛系统的文献综述。本文主要从博客的基本概念、特点以及技术背景出发,深入剖析了基于Java的博客论坛系统的设计理念和实现过程。 首先...
MVC模式是Java Web开发中广泛采用的设计模式。Model代表业务逻辑和数据,View负责显示数据,而Controller作为两者之间的桥梁,接收用户请求,处理后转发给适当的Model,最后更新View。这种分离使得代码结构清晰,...
3. **MVC模式**:理解模型-视图-控制器设计模式,如何将业务逻辑、数据显示和用户交互分离,提高代码可维护性。 4. **Web容器**:如Tomcat或Jetty,它们提供运行Java EE应用的环境,管理Servlet和JSP的生命周期。 ...
2. **MVC设计模式**:模型-视图-控制器(Model-View-Controller)是用于构建用户界面的常见架构模式。在这个考试系统中,模型负责数据处理,视图负责用户交互,控制器处理用户请求并协调模型和视图。 3. **数据库...
本项目的核心部分可能采用了MVC(Model-View-Controller)设计模式,这是一种广泛应用于Web开发的架构模式,有助于保持代码结构清晰,提高可维护性和可测试性。Model代表业务逻辑和数据模型,View负责展示数据,而...
"基于java课件管理系统的文献综述" 在当今信息化的时代,基于Java课件管理系统的文献综述具有非常重要的意义。这篇文献综述主要介绍了课件管理系统的概念、发展和应用,及其对教育系统的影响。 首先,课件管理系统...
这个压缩包中的内容主要包括论文、源代码、文献综述、外文翻译和开题报告,为深入理解JAVA语言在考试系统设计中的应用提供了全面支持。 首先,论文部分详细阐述了JAVA语言在开发考试系统时的关键技术和方法。JAVA以...
Java的Socket通信机制为客户端和服务器之间提供双向通信,支持有连接和无连接两种模式,适应不同应用场景的需求。有连接方式确保了数据的可靠性,无连接方式则降低了系统开销,但不保证数据传输的可靠性。 【Java...
2. **MVC(Model-View-Controller)设计模式**:在系统设计中,MVC模式被广泛应用于构建应用程序的架构。模型负责数据处理,视图负责显示,控制器则协调两者,使系统结构清晰,易于维护和扩展。 3. **Servlet和JSP*...
2. **MVC(Model-View-Controller)设计模式**:该系统很可能采用了MVC架构,这是一种常用在Web应用中的设计模式,用于分离业务逻辑、数据模型和用户界面。Model负责数据处理,View负责展示,Controller处理用户交互...
### 基于软总线的JAVA应用环境的设计与开发文献综述 #### 软总线中的分布技术 在当今快速发展的信息技术领域,软总线作为一种新兴的技术,正在逐步改变传统的软件开发模式。软总线的核心在于它能够提供一个标准化...
4. **MVC(Model-View-Controller)架构**:网上商城系统通常采用MVC设计模式,Model负责数据处理,View负责界面展示,Controller负责协调Model和View,这种分层设计使得代码结构清晰,易于维护。 5. **数据库设计*...
【JAVA语言考试系统的设计与实现】是一个典型的Java毕业设计项目,它涵盖了软件工程中的多个重要环节,包括需求分析、系统设计、编码实现、测试及文档编写。该项目的主要目标是构建一个能够进行在线考试、自动评分和...
JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统; J2EE;毕业设计 JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统; J2EE;毕业设计 JAVA 系统; MVC模式; JSP; SQL Server 2000 数据库管理系统;...
【标题】:“Java网站课程设计”是一门针对Java编程语言在构建网站应用方面的实践课程,旨在教授学生如何利用Java技术进行完整的网站开发。这通常包括前端界面设计、后端服务实现以及数据库交互等多个环节。 【描述...
接着,采用了MVC(Model-View-Controller)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和扩展性。 在实现过程中,开发者可能使用了Spring框架进行后端开发,利用其依赖注入和AOP(面向切...
用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...