java工厂方法模式学习

简单工厂模式又称为静态工厂模式,实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

其实就是将一个具体类的实例化交给一个静态工厂方法来执行,它不属于GOF的23种设计模式,但现实中却经常会用到,而且思想也非常简单。

总结;定义一个接口,多个实现类,一个工厂方法

1
2
3
4
public interface Human {
    void eat();
    void sleep();
}

 

1
2
3
4
5
6
7
8
9
10
11
public class WhiteHuman implements Human{
    @Override
    public void eat() {
        System.out.println("白种人吃饭");
    }
 
    @Override
    public void sleep() {
        System.out.println("白种人睡觉");
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
public class YellowHuman implements Human{
    @Override
    public void eat() {
        System.out.println("黄种人吃饭");
    }
 
    @Override
    public void sleep() {
        System.out.println("黄种人睡觉");
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class HumanFactory {
    public static Human createHuman(Class tClass) {
        try {
            return (Human) Class.forName(tClass.getName()).newInstance();
        } catch (InstantiationException e) {
            throw new RuntimeException(e);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
 
    }
}

  测试:

 

 

 

posted @   刘百会  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示