簡單工廠模式的實現
阿新 • • 發佈:2019-03-15
alt 枚舉 .get interface pan 方法 bsp spa 模式
枚舉+反射實現簡單工廠模式
定義接口:
public interface IAnimal { public void eat(); }
具體類:
public class Pig implements IAnimal { public void eat() { System.out.println("pig eat"); } }
public class Dog implements IAnimal { public void eat() { System.out.println("dong eat"); } }
枚舉類,設置類對應的類名:
public enum AnimalType { DOG("Dog"), PIG("Pig"); private String value; private AnimalType(String value) { this.value = value; } public String getValue() { return value; } }
工廠類:
public classSimpleFactory { public static IAnimal getInstance(AnimalType animalType) { IAnimal animal = null; try { animal = (IAnimal) Class.forName(animalType.getValue()).newInstance(); } catch (Exception e) { System.out.println(e.getMessage()); }return animal; } }
測試案例:
public class SimpleFactoryTest { public static void main(String[] args) { IAnimal dog = SimpleFactory.getInstance(AnimalType.DOG); dog.eat(); IAnimal pig = SimpleFactory.getInstance(AnimalType.PIG); pig.eat(); } }
運行結果:
後續有更好的方法會繼續更新。
簡單工廠模式的實現