Java设计模式 - 工厂方法

欢迎光临程序代写小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

一、工厂方法

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

现在有一个基类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 eating
Fish start eating

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

二、jdk中的工厂方法

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

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



作者:Fynn_
链接:https://www.jianshu.com/p/343eb7fb77d5
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

猜你喜欢

转载自blog.csdn.net/qq_24624539/article/details/88044199