Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
设计模式整理(二) 之 工厂模式

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

工厂模式其实是java开发中最常用的模式之一,我们在获取数据库连接的时候,经常使用工厂模式;

1、结构图:

2、目的:

定义一个用于创建对象的接口,让接口子类通过工厂方法决定实例化哪一个类;
3、适用性:
a) 当一个类希望由它的子类来指定它所创建的对象的时候;
b) 当一个类不知道自己将创建什么样的对象类的时候(有多种对象类可以选择);
c) 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候;
4、java实现:

工厂类(Factory.java):
public class Factory {
    public Window CreateWindow (String type) {
      Class cls = null;
      Window win = null;
      try{
        cls = Class.forName(type);
        win =(Window)cls.newInstance();
      }catch(Exception ex)
      {
        ex.printStackTrace();
      }
      return win;
    }

    public static void main(String[] args) {
        Factory myFactory = new Factory();
        Window myBigWindow = myFactory.CreateWindow("WindowBig");
        myBigWindow.func();

        Window mySmallWindow = myFactory.CreateWindow("WindowSmall");
        mySmallWindow.func();
    }
}
----------------
window接口(Window.java)
public abstract class Window {
    public abstract void func();
}
----------------
两个子类中的第一个WindowBig.java:
public class WindowBig extends Window {
    public void func() {
        System.out.println("This is Big Window !");
    }
}
两个子类中的第二个WindowSmall.java:
public class WindowSmall extends Window {
    public void func() {
        System.out.println("This is Small Window !");
    }
}




相关文章

相关软件