Factory.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public interface Factory {
public Animal createAnimal();
}
Animal.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public abstract class Animal {
public abstract void eat();
}
CatFactory.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public class CatFactory implements Factory{
@Override
public Animal createAnimal() {
return new Cat();
}
}
Cat.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public class Cat extends Animal {
public void eat(){
System.out.println("猫吃鱼");
}
}
DogFactory.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public class DogFactory implements Factory{
@Override
public Animal createAnimal() {
return new Dog();
}
}
Dog.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public class Dog extends Animal {
public void eat(){
System.out.println("狗吃肉");
}
}
Test.java
package com.jzh.Factory;
/**
* Created by nameJuzhihua on 2017/9/10.
*/
public class Test {
public static void main(String[] args) {
DogFactory df=new DogFactory();
Dog d= (Dog) df.createAnimal();
d.eat();
CatFactory cf=new CatFactory();
Cat c= (Cat) cf.createAnimal();
c.eat();
}
}