EffectiveJava 1创建和销毁对象 1考虑用静态工厂方法代替构造器
2022/2/9 9:16:07
本文主要是介绍EffectiveJava 1创建和销毁对象 1考虑用静态工厂方法代替构造器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 内容
1.0 静态工厂方法定义
Fragment fragment = new MyFragment(); // or Date date = new Date(); 然而实际中是这样: Fragment fragment = MyFragment.newIntance(); // or Calendar calendar = Calendar.getInstance(); // or Integer number = Integer.valueOf("3"); 像上面这样的:不通过 new,而是用一个静态方法来对外提供自身实例的方法,即为我们所说的静态工厂方法。
参考:https://blog.csdn.net/weixin_44148815/article/details/87653744
1.1 静态工厂方法与构造器相比的优点
- 静态工厂方法有名称,便于阅读
如BigInteger的判断质数的方法,通过名称可能为质数,方便理解
public static BigInteger probablePrime(int var0, Random var1) { if (var0 < 2) { throw new ArithmeticException("bitLength < 2"); } else { return var0 < 95 ? smallPrime(var0, 100, var1) : largePrime(var0, 100, var1); } }
- 不必再每次调用它们的时候都创建一个新的对象,节省了开销
- 静态工厂方法可以返回原类型的任何子类型的对象
如下:java.util.Collections 有如下方法
public static <T> ArrayList<T> list(Enumeration<T> var0) { ArrayList var1 = new ArrayList(); while(var0.hasMoreElements()) { var1.add(var0.nextElement()); } return var1; } public static <T> Set<T> unmodifiableSet(Set<? extends T> var0) { return new Collections.UnmodifiableSet(var0); }
上边代码直接从源码拿到,最好参考右侧网址,便于理解:https://blog.csdn.net/u014519120/article/details/78741481
1.2 静态工厂方法与构造器相比的缺点
这篇关于EffectiveJava 1创建和销毁对象 1考虑用静态工厂方法代替构造器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南