java設計模式(二)工廠模式
阿新 • • 發佈:2017-07-18
額外 mod 通過反射 pat 擴展 簡單實現 需要 factory actor
工廠模式是最常見的實例化對象的模式,用來替代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設計模式(二)工廠模式