工厂方法模式(例子)

来源:互联网 发布:网络信息平台责任 编辑:程序博客网 时间:2024/05/05 20:03

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();    }}
原创粉丝点击