首页 技术 正文
技术 2022年11月18日
0 收藏 758 点赞 3,093 浏览 438 个字

Item 1. 考虑用静态工厂方法替代构造器

获得一个类的实例时我们都会采取一个共有的构造器。Foo x = new Foo();

同时我们应该掌握另一种方法就是静态工厂方法(static factory method)。

一句话总结,静态工厂方法其实就是一个返回类的实例的静态方法。

书中给出的例子是Boolean的valueOf方法:

【读书笔记】《Effective Java》——创建和销毁对象

通过valueOf方法将boolean基本类型转换成了一个Boolean类型,返回了一个新的对象引用。

valueOf外,像Java中的getInstancenewInstance等方法都为静态工厂方法。

静态工厂方法不同于设计模式中的工厂方法。

那么为什么要使用静态工厂方法呢?下面是它的几大优势:

它们有名字

给构造器起名字,增强了代码的可读性。

如果一个构造器的参数并不能确切描述它返回的对象,这时候可以考虑静态工厂方法。

或者你的多个构造器只是在参数列表中的参数顺序上有所不同,那么除非你提供了详尽的文档说明,否则你下次使用时就会一脸懵逼,这几个构造器到底要选哪个

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,084
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,559
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,408
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,181
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,818
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,901