工廠模式其實是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 !");
??? }
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=271432