以武哥的女娲造人为例:
女娲生产人,人有黑白黄三种,同时会说:
1、接口类为:
package 工厂模式;
public interface Human {
//人有不同颜色
public void getColor();
//人会说话
public void talk();
}
2、下面捏各种人模子:
白:
package 工厂模式;
public class whilteman implements Human {
@Override
public void getColor() {
System.out.println("白种人");
}
@Override
public void talk() {
System.out.println("英语");
}
}
黄:
package 工厂模式;
public class yellowman implements Human {
@Override
public void getColor() {
System.out.println("小黄人");
}
@Override
public void talk() {
System.out.println("黄语");
}
}
黑:
package 工厂模式;
public class blackman implements Human {
@Override
public void getColor() {
System.out.println("黑种人");
}
@Override
public void talk() {
System.out.println("黑语");
}
}
3、模子捏好了,那么需要借助炉子(八卦炉):
八卦炉抽象类:
//八卦炉(生产人)
public abstract class AbstractHumanFactory {
public abstract <T extends Human> T createHuman(Class<T> clazz);
}
八卦炉实现类:
package 工厂模式;
//实现八卦炉
public class HumanFactory extends AbstractHumanFactory {
@Override
public <T extends Human> T createHuman(Class<T> clazz) {
Human human = null;
try {
human = (Human) Class.forName(clazz.getName()).newInstance();
} catch (Exception e) {
// TODO: handle exception
System.out.println("人种产生错误");
}
return (T) human;
}
}
4、所有都弄好了,那么就应该造人了:
package 工厂模式;
public class test {
public static void main(String[] args) {
AbstractHumanFactory bagualu = new HumanFactory();
Human blackman = bagualu.createHuman(blackman.class);
Human whiteHuman = bagualu.createHuman(whilteman.class);
Human yelloHuman = bagualu.createHuman(yellowman.class);
}
}
本文学武哥文章,纯属学习