设计模式在java中的具体应用.docx
设计模式与XML设计模式在java语言中的应用信息管理与信息系统王茜摘要:随着计算机软件技术的高速发展和面向对象开发技术的扩展,设计模式在各个领域已经逐步占领了很高的地位,对java语言的研究也提升到另一个境界,设计模式显然已经成为了java语言研究的新的领域,设计模式可以帮助java设计师们解决一些不易解决的问题,采用设计模式的思想也能使java语言编写出来的程序更加完善。本文将简要介绍几种设计模式在java语言中的应用,了解设计模式在java语言中究竟是怎样实现的。关键字:设计模式java适配器模式工厂模式一、引言设计模式在java语言中的应用日趋重要,那么,在java语言中,究竟如何应用设计模式呢,本文主要从设计模式的思想上介绍,并且简要列举两种设计模式举例说明具体的应用。二、设计模式与java语言1、简述设计模式设计模式(DesignPatterns)的基本思想是对面向对象设计的常见问题进行描述,并给出优良的解决方案,使得设计师在遇到类似问题时可以重用优良的解决方案,从而实现在设计层次上的复用。每个模式中所描述的解决方案都具有易于理解、方便维护、易于扩展等优点,因此,模式在软件系统中的使用十分普遍,已经成为开发人员进行设计交流的重要工具和手段。2、几种设计模式在java中的应用限于篇幅,本文主要介绍两种设计模式的具体应用介绍,其余的设计模式简要介绍。(1)Singleton(单例)模式单例模式的要点有3点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作。下面是简单的代码:publicclassSingleton{//私有化默认构造函数privatestaticfinalSingletonm_instance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returnm_instance;}}可以看出,在这个类被加载时,静态变量m_instance会被初始化,此时类的私有构造函数会被调用,这时候,单例类的唯一实例就被创建出来了。Java语言中单例类的一个最重要的特点是类的构造函数是私有的,因此,此类不能被继承。(2)Adapter(适配器)模式适配器模式属于结构性模式,把一个类的接口变换成客户端所期望的另一种接口,从而使原本因接口不匹配而无法在一起的两个类能够在一起工作。设计模式与XML在java中定义了两种方式达到重用的目的:1、继承;2、组合。类适配器是基于继承的,对象适配器是基于组合的。类适配器的代码如下:publicinterfaceTarget{publicvoidsampleOperation1();publicvoidsampleOperation2();}publicclassAdaptee{publicvoidsampleOperation1(){}}PublicclassAdapterextendsAdapteeimplementsTarget{PublicvoidsampleOperation(){}}对象适配器的代码如下:PublicinterfaceTarget{PublicvoidsampleOperation1();PublicvoidsampleOperation2();}PublicclassAdaptee{PublicvoidsampleOperation1(){}}PublicclassAdapter{PrivateAdapteeadaptee;PublicAdapter(Adapteeadaptee){This.adaptee=adaptee;}PublicvoidsampleOperate1(){This.adaptee.sampleOperation1();}PublicvoidsampleOperation2()[}}(3)其他设计模式工厂方法(Factory):是类的创建模式,定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。策略(Strategy):属于对象的行为模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换。策略模式使得算法可以再不影响到客户端的情况下发生变化。在java中,主要是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口interface(c++中是用虚类),然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。观察者(Observer):是对象的行为模式,观察者模式定义了一种一对多的依赖关设计模式与XML系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。在c++中用类class来实现的observer类,在java中用接口interface实现等这些细节都是在设计模式在java和C++中应用的不同。装饰(Decorator):以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。此模式在java中的应用主要是通过I/O库实现的,在所有Stream类型的链接流处理其中,使用频率最大的就是FilterStream类,以这个类为抽象装饰角色的装饰模式结构非常明显和典型。以这个类为核心说明装饰模式的各个角色是由哪些流处理器扮演:抽象构件(Component)角色:由Stream扮演。这是一个抽象类,为各种子类型处理器提供统一的接口;具体构建(ConcreteComponent)角色:由ByteArrayStream、FileStream、PipedStream以及StringBufferStream等原始流处理器扮演。它们实现了抽象构建角色所规定的接口,可以被链接流处理器所装饰;抽象装饰(Decorator)角色:由FilterStream扮演。它实现了Stream所规定的接口;具体装饰(ConcreteDecorator)角色:由几个类扮演,分别是DateStream、BufferedStream以及两个不常用到的类LineNumberStream和PushbackStream。三、总结本文主要针对java设计模式做出简要的介绍,使得我们队设计模式在不用语言中的应用,java模式虽然会导致代码过于繁琐,程序难以理解,但是它可以灵活的创建一些不确定的对象,使得实现过程变得易于理解。由于它的可重复性,也给程序员提供了捷径。参考文献:[1]王芳.java程序中的设计模式以及应用举例.电脑知识与技术.2007[2]陈海洋.java设计模式研究.软件导刊.2007[3]周飞菲.java中的适配器模式.科技信息.