为了账号安全,请及时绑定邮箱和手机立即绑定

Java设计模式 - 工厂方法

标签:
Java Android
一、工厂方法

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

现在有一个基类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)
......

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

点击查看更多内容
22人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
17
获赞与收藏
653

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消