首页 > 开发 > JAVA > 正文

Java设计模式 - 工厂方法

2016-04-19 12:14:29  来源:慕课网

一、工厂方法

定义:利用工厂类,对实现同一接口的不同类进行实例的创建。也就是根据不同的需求,创建不同的子类对象。

现在有一个基类Anim,有一个AnimFactory工厂类,所有实现了Anim的子类都通过AnimFactory来创建:

public interface Anim {    void eat();}
public class Bird implements Anim {    @Override    public void eat() {        System.out.println("Bird start eating");    }}
public class Fish implements Anim {    @Override    public void eat() {        System.out.println("Fish start eating");    }}
public class AnimFactory {    public static final int FISH = 0x01;    public static final int BIRD = 0x02;    public static Anim createAnim(int animType) {        Anim anim = null;        switch (animType) {            case FISH:                anim = new Fish();                break;            case BIRD:                anim = new Bird();                break;            default:                break;        }        return anim;    }    public static final void main(String[] args) {        AnimFactory.createAnim(AnimFactory.BIRD).eat();        AnimFactory.createAnim(AnimFactory.FISH).eat();    }}

输出结果:

Bird start eatingFish start eating

当然,我们还可以将AnimFactory 创建为基类,实现多个AnimFactory 子类,分别通过每个AnimFactory 子类创建对应的Anim 子类对象,在此就不一一诉说了。

二、jdk中的工厂方法

java.lang.Object.toString()java.lang.Boolean.valueOf(String)......

具体可看源代码中的实现。