一、工厂方法
定义:利用工厂类,对实现同一接口的不同类进行实例的创建。也就是根据不同的需求,创建不同的子类对象。
现在有一个基类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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦