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); } } } |
测试:
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?