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

|