工厂模式其实是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 !");
}
}