静态工厂方法的一些惯用名称?举例?
来源:互联网 发布:战略家软件 编辑:程序博客网 时间:2024/05/16 07:31
静态工厂的优势见源码|静态工厂返回声明的返回类型的子类型的实例。
本文记录静态工厂方法的一些惯用名称,开发中应遵循这些好的习惯。
valueOf
该方法返回的实例与它的参数具有相同的“值”。
如Integer.valueOf()方法:
public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(parseInt(s, 10)); }… public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
Integer类默认缓存low~high之间的常量(low=-127;high默认127,可配置,最高high-low+1不超过Integer.MAX_VALUE,即数组的最大长度),通过静态工厂方法valueOf(i),low<=i<=high时,我们每次获得的都是缓存好的常量。这是静态工厂方法带来的好处。
of
valueOf的一种简洁写法。
如LocalDate.of()方法。
getInstance
返回的实例是根据方法的参数来描述的,但是不能够说与参数具有相同的值。一般用来表示获取相同的实例,如单例模式,或根根参数获取不同的单例等。
newInstance
类似于getInstance。不同的是,一般用来表示获取新的实例,如Class#newInstance()方法等。
与Builder模式相比,Class#newInstance()的缺点
Class#newInstance()破坏了编译时的检查:
- newInstance方法总是企图调用类的无参构造器。这个构造器甚至可能根本不存在,或者用户无访问权限,但编译期间你不会收到任何错误
- newInstance方法还会传播由无参构造器抛出的任何异常,即使newInstance缺乏相应的throws子句
getType
返回的类型是根据方法的参数来描述的,但是不能够说与参数具有相同的值。就像是针对类型的getInstance,如Character.getType()方法。
newType
待定,我没理解,也没找到实例。
参考:
- 《Effective Java》中文版第2版
>
本文链接:静态工厂方法的一些惯用名称?举例?
作者:猴子007
出处:https://monkeysayhi.github.io
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名及链接。
阅读全文
0 0
- 静态工厂方法的一些惯用名称?举例?
- 构建器使用举例-静态工厂和构造器的替代方法
- dom4j惯用的方法
- maven的一些惯用Repository
- 一些惯用的编码手法
- Spring的静态工厂方法
- 静态工厂方法的作用
- java工厂方法和抽象工厂举例
- Spring的实例工厂方法和静态工厂方法
- Spring的实例工厂方法和静态工厂方法
- うわさ的一些惯用搭配
- 静态工厂方法的优缺点分析
- java静态方法重写举例
- spring的静态工厂和实例工厂方法
- 静态工厂 工厂方法 抽象工厂
- 静态工厂方法
- 静态工厂方法模式
- 静态工厂方法
- NumPy简明教程(二、数组2)
- 2019届网易云音乐前端实习生电面心得
- window.opener.document.getElementById(“a”)用标准的Jquery 语言怎么写
- DJANGO_PART6
- PB 片段代码
- 静态工厂方法的一些惯用名称?举例?
- 【Linux】Shell
- django基础教程
- 高大上 web ppt 制作
- 凸优化
- 从一颗咖啡生豆到一杯星巴克的香醇咖啡,需要经历哪几步? screenshot 在今天开业的星巴克上海烘焙工坊中,顾客打开手机淘宝“扫一扫”功能,便可观看到星巴克咖啡烘焙、生产及煮制的全过程,同时通过
- 读
- javascript优化-循环
- 当“星爸爸”遇到“马爸爸” 阿里的AR技术售卖咖啡文化