package cn.itcast_03;publicclassAnimalDome{publicstaticvoidmain(String[] args){// 具体类的调用
Dog d =newDog();
d.eat();
Cat c =newCat();
c.eat();//创建对象很麻烦所以我创建了一个简单工厂类//来帮我创建对象//有了工厂后,通过工厂调// Dog dd = AnimalFactory.creatDog();// Cat cc = AnimalFactory.creatCat();// dd.eat();// cc.eat();//工厂改进后
Animal a = AnimalFactory.creadAnimal("dog");
a.eat();
Animal aa = AnimalFactory.creadAnimal("cat");
aa.eat();//NullPointerException空指针异常
Animal aaa = AnimalFactory.creadAnimal("pig");//应该先进性判断if( aaa != null){
aaa.eat();}else{
System.out.println("对不起,不提供这种动物");}}}
工厂代码
package cn.itcast_03;publicclassAnimalFactory{privateAnimalFactory(){}// public static Dog creatDog() {// return new Dog();// }// // public static Cat creatCat() {// return new Cat();// }publicstatic Animal creadAnimal(String Animal){if("dog".equals(Animal)){returnnewDog();}elseif("cat".equals(Animal)){returnnewCat();}else{return null;}}}