標籤:catch pat ant static 建立 設計模式 方法 color pattern
原廠模式是最常見的執行個體化對象的模式,用來替代new操作。採用這種模式建立對象會有一些額外的操作,但他會帶給系統更大的擴充性和更少的修改量。典型的應用spring bean容器。下面簡單實現工廠的例子。
1、動物介面,提供公用方法體
public interface Animal { public void eat();}
2、貓類,繼承動物介面,實現貓的eat方法
public class Cat implements Animal { public void eat() { System.out.println("貓在吃飯..."); }}
3、狗類,繼承動物介面,實現狗的eat方法
public class Dog implements Animal { public void eat() { System.out.println("狗在吃飯..."); }}
4、工廠類
需要注意兩點:1)傳回型別為介面 2)通過反射實作類別的執行個體化
public class AnimalFactory { public Animal getAnimalByClassName(String className) { Animal a = null; try { a = (Animal) Class.forName(className).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return a; }}
5、測試類別
public class Model { public static void main(String[] args) { AnimalFactory af = new AnimalFactory(); Animal a = af.getAnimalByClassName("design_pattern.factory.Cat"); a.eat(); a = af.getAnimalByClassName("design_pattern.factory.Dog"); a.eat(); }}
java設計模式(二)原廠模式