简单工厂

来源:互联网 发布:java计算时间差 毫秒 编辑:程序博客网 时间:2024/06/05 05:47

public abstract class Animal {
public abstract void eat();
}

public class AnimalFactory {
/*public static Dog createDog() {
return new Dog();
}

public static Cat createCat() {    return new Cat();}*///发现方法会定义很多,复用性太差//改进public static Animal createAnimal(String name) {    if("dog".equals(name)) {        return new Dog();    }else if("cat".equals(name)) {        return new Cat();    }else {        return null;    }}

}

public class Cat extends Animal {

@Overridepublic void eat() {    System.out.println("猫吃鱼");}

}

public class Dog extends Animal {

@Overridepublic void eat() {    System.out.println("狗吃肉");}

}

public class Test {

/** * @param args */public static void main(String[] args) {    //Dog d = AnimalFactory.createDog();    Dog d = (Dog) AnimalFactory.createAnimal("dog");    d.eat();    Cat c = (Cat) AnimalFactory.createAnimal("cat");    c.eat();}

}