当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 定义:提供创建对象的接口.为何使用?工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。
 

 

 ·vb打造超酷个性化菜单(二)    »显示摘要«
    摘要:vb打造超酷个性化菜单(二) 其实,漂亮的界面都是“画”出来的,菜单当然也不例外。既然是“画”出来的,就需要有窗体来接收“画”菜单这个消息,后面我们会看到,实际上不仅仅是“画”这个消息,一切关于这个菜单的消息都要有一个窗体来接收。如果你对消息不太了解,可以看看网上其它一些关于windows消息机制的文章。不了解也没有关系,只要会使用就可以了,后面的文章给出了完整的源代码,而且文章的最后还给出了源代码的下载地址。 下面我们来创建接收消息的窗体:打开上次建好的......
 ·vb打造超酷个性化菜单(三)    »显示摘要«
    摘要:vb打造超酷个性化菜单(三) 现在到了最关键,最精彩,也是最复杂的部分了。我们最关心的就是怎样“画”菜单,怎样处理菜单事件,在menuwndproc这个处理消息的函数里,我们要处理如下消息:wm_command(单击菜单项),wm_measureitem(处理菜单高度和宽度),wm_menuselect(选择菜单项),wm_drawitem(绘制菜单项)。 打开上次建好的工程,添加一个标准模块,并将其名称设置为mmenu,代码如下: ´****......


Java设计模式之Factory
定义:提供创建对象的接口.

【相关文章:我的EJB学习历程(七)

【扩展阅读:变革性的Java Web模板技术 --

为何使用? 【扩展信息:有效用例模式学习笔记

工厂模式是我们最常用的模式了,著名的jive论坛 ,就大量使用了工厂模式,工厂模式在java程序系统可以说是随处可见。

为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类class生成实例对象,如a a=new a() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性与尽量少的修改量。

我们以类sample为例, 如果我们要创建sample的实例对象:

sample sample=new sample();

可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,比如赋值 查询数据库等。

首先,我们想到的是,可以使用sample的构造函数,这样生成实例就写成:

sample sample=new sample(参数);

但是,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要refactor重整)。

为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于java面向对象的原则,面向对象的封装(encapsulation)与分派(delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段与段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。

在本例中,首先,我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从sample的构造函数中分离出去。

这时我们就需要factory工厂模式来生成对象了,不能再用上面简单new sample(参数)。还有,如果sample有个继承如mysample, 按照面向接口编程,我们需要将sample抽象成一个接口.现在sample是接口,有两个子类mysample 与hissample .我们要实例化他们时,如下:

sample mysample=new mysample();

sample hissample=new hissample();

随着项目的深入,sample可能还会"生出很多儿子出来", 那么我们要对这些儿子一个个实例化,更糟糕的是,可能还要对以前的代码进行修改:加入后来生出儿子的实例.这在传统程序中是无法避免的.

但如果你一开始就有意识使用了工厂模式,这些麻烦就没有了.

工厂方法

你会建立一个专门生产sample实例的工厂:

public class factory{

  public static sample creator(int which){

  //getclass 产生sample 一般可使用动态类装载装入类。
...   下一页
    摘要:sql sever 2000的系统数据库和索引 学习人:hsly 学习书籍:sql server 2000入门与提高 撰写日期:2004-7-12 章节:4.1 p44 9.6.1p126 sql server 2000 在安装过程中,创建了4个系统数据库,这4个系统数据库是运行sql server 2000的基础,建立在这4个系统数据库中的表格奠仪了运行和使用sql server的规则。这4个数据库分别是:master, model, tempdb, m......
» 本期热门文章:

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