设计模式之工厂方法模式
程序员文章站
2024-01-05 19:29:46
...
一、什么是工厂方法模式?
定义一个用于创建对象的接口,让子类决定实例化哪一个类
二、实现(采用设计模式之禅里女娲造人-白人、黑人、黄种人的故事)
1.工厂方法模式实现方式一
人类总称接口
public interface Human{
//设置人种皮肤颜色
public void getColor();
//人会说话
public void talk();
}
黑色人种(实现Human接口):
public class BlackHuman implements Human{
//皮肤颜色
public void getColor(){
System.out.printLn("黑人皮肤是黑色的");
}
//
public void talk(){
System.out.printLn("黑人说话听不懂");
}
}
黄色人种(实现Human接口):
public class YellowHuman implements Human{
//皮肤颜色
public void getColor(){
System.out.printLn("黄色人种皮肤是黄色的");
}
//
public void talk(){
System.out.printLn("黄色人种说汉语");
}
}
白色人种WhitHuman(实现Human接口):
抽象人类建造工厂:
public abstract class AbstractHuamnFactory{
public abstract<T extends Human> T createHuman(class<T> c);
}
人类建造工厂(实现AbstractHuamnFactory类):
public class HumanFactoryextends AbstractHuamnFactory{
public <T extends Human> T createHuman(class<T> c){
//定义一个生产的人种
Human human = null;
try{
//
human = (Human) Class.forName(c.getName()).newInstance();
}catch (Exception e){
System.out.printLn("人种生成错误");
}
return (T) human;
}
}
造人实现类:
public class NvWa{
public static void main(String[] args){
AbstractHumanFactory zaoren = new HumanFactory();
//白人
System.out.printLn("白色人种");
Human whitHuman = zaoren.createHuman(WhiteHuman.class);
whitHuman.getColor();
whitHuman.talk();
//黑人
System.out.printLn("\n--黑色人种--");
Human blackHuman = zaoren.createHuman(BlackHuman.class);
blackHuman.getColor();
blackHuman.talk();
//黑人
System.out.printLn("\n--黄色人种--");
Human yellowHuman = zaoren.createHuman(YellowHuman.class);
yellowHuman.getColor();
yellowHuman.talk();
}
}
2.工厂方法模式实现方式二
上一篇: Python矩阵中常见运算的示例代码分享