当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 设计模式简述 IT先锋资深顾问 grid liu grid liu在IT先锋中担任资深顾问,负责J2EE技术的顾问咨询和培训工作。
 

 

    摘要:qpl,一种开放源代码许可证   包括以下用于qt免费版2.0的本许可证1.0版,本许可证被称为q公共许可证(或"qpl"),并已经通过了开放源代码认证。因此,它适用于那些希望按照开放源代码模式开发软件,从而使软件的源代码可以被所有的用户所得到、修改和再发布的人们。qpl禁止开发私有软件。关于qt,我们提供了qt专业版。请访问:http://www.troll.no/pricing.html。   你可以按照qpl发布你自己的软件。......
 ·gnu项目简介(转自:linuxaid)    »显示摘要«
    摘要:1.project gnu 简介   project gnu 的起源,来自十年前, richard stallman, 目前为 project gnu 的计划主持人, 在网路讨论区的一篇文章( http://www.cs.pdx.edu/~trent/gnu/begin, 10 years ago on internet )。richard stallman 在这篇文章中明白的说明了他为什麽 要发起这计划。 这篇文章就是後来的 gnu manifest......


设计模式简述
设计模式简述 it先锋资深顾问 grid liu

grid liu在it先锋中担任资深顾问,负责j2ee技术的顾问咨询与培训工作。

关键词:设计模式? 创建型模式? 简单工厂? 工厂方法? 抽象工厂?? 【相关文章:Introduction

摘要 【扩展阅读:使用TImage浏览与保存网络图像

1.1??????? 创建对象 【扩展信息:关于自定义组件属性中的default、s

1???????? 创建型模式

? 在面向对象语言中的创建对象,使用class的构造函数,通过操作生成一个对象(该类的实例instance)。如java语言的new,如我们创建一个customet类的实例,customer object=new customer();并且每个对象都有一个构造函数(可以是缺省的构造函数),它负责对象的创建,(有些语言还有析构函数,负责对象的释放,然而java使用垃圾收集器完成对象的回收)

1.2??????? 为什么需要创建型模式

?? 我们已经知道了在java语言中通过new来创建对象,但是什么还需要创建模式,其中有以下几个原因:

n???????? 由于设计模式的原则,面向接口进行编程,而不是实现(programming to an interface, not an implementation)

因为在实际的编程时使用了接口(interface)的概念,可是该接口一般有多个实现(implementation)类,因此就会存在如何选择的创建哪个实现的实例情况,如下图:

因此我们传统的创建对象,不利于扩展,修改。如interface object=new implementtion1();这样我们一旦修改为其他的实现类,需要多处修改代码,因此需要把创建对象外部化。

?

n???????? 名称必须是构造函数,名称受限

往往构造函数自身无法描述被返回的对象,而选用名字合适的工厂方法可以使类的使用更加容易,产生的代码容易阅读。

n???????? 每次创建都创造了一个新的对象

每次创建都返回一个新的对象,然而在实际项目中需要,某一类仅创建一个实例,或者为了使用cache,来进行反复使用已经创建的对象。

n???????? 每次的返回类型,都是一个具体对象

构造函数返回的类型,都是具体的类型。而使用工厂模式可以返回子类型。

n???????? 重用创建对象的过程

我们知道,有些对象的创建过程相当复杂,这里指的是通过new之后的object,必须经过一系列的赋值等操作之后才可使用。于是我们需要这些赋值等操作的过程。

1.3??????? 创建型模式目的

? 创建型模式目的就是抽象对象的实例化过程。它可以帮助一个系统独立于如何创建,谁创建,创建什么。它可以改变以前通过new class()这种硬编码方式转移为一个独立的行为集。因此这些行为可以实现复用,组合,使用创建对象的过程易于修改,维护,扩展。

1.4??????? ??创建型模式的考虑点

在实际的系统中使用创建型模式创建对象时需要考虑以下几点:

n???????? 动态的确定创建哪些对象(确定创建一个接口的那个实现类)

n???????? 是谁创建这些对象(是外部的对象,还是本身对象提供,或者静态的类继承)

n???????? 动态决定怎样创建对象(新建对象还使用cache,还是复制某个对象)

n???????? 决定怎样组合或者表示这些对象()

1.5??????? 创建模式的分类

n???????? 类的创建模式

类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息

n???????? 对象的创建模式

而对象的创建则是把对象的创建过程动态的委派给另一个对象,从而动态的决定客户端将得到哪些具体的类实例,以及这些类的实例是如何被创建与组合在一起

2???????? 简单工厂模式

2.1??????? ?意图

n???????? 简单工厂是由一个工厂对象决定创建出哪一种产品类的实例。

?简单工厂是最简单的一种模式(我认为还有template method模式),也最容易理解的模式,上面介绍使用传统方式创建对象的缺点,因此通过外部化行为创建对象,因此我们通过一个方法,它负责对象的创建。因此把这种传统的创建过程customer object=new customer()改为? customer object= createobject();

????

public customer createobject(){

?????? return new new customer();

}

这样我们在系统中创建对象改为使用一个函数来完成,因此一旦系统发生改变,我们仅需要修改这个函数即可完成。


...   下一页
 ·正则表达式    »显示摘要«
    摘要:-、"^"头匹配  ^front表示以"front"开头的字符串。二、"$"尾匹配  tail$表示以"tail"结尾的字符串。三、转义序列  所有转义序列都用"\"打头。如"^"、"$"、"+"、"("、")"在表达式中都有特殊意义,所以在正则表达式中也用&......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE