1.考虑用静态工厂方法代替构造器
例子:
public static Boolean valueOf(boolean b){
return b ? Boolean.TRUE : Boolean.FALSE;
}
使用静态工厂替代构造器的优势:
1)他们有名称
2)不必每次调用都产生新的对象
3)可以返回原返回类型任何子类型的对象
4)创建参数化类型实例的时候,使代码更简洁
缺点:1)类如果不含公有的或者受保护的构造器,就不能被子类化
2)与其他的静态方法没有任何区别:API中没有特殊标明,因此很难查找如何实例化一个类。
静态工厂方法的惯用名称
*valueOf--该方法返回的实例与它的参数具有相同的价值。这样的静态工厂方法实际上是类型转换方法。
*of--valueOf的一种更为简洁的替代
*getInstance--返回的实例是通过方法的参数来描述的,但是不能说具有与参数同样的值。对于singeton来说,该方法 没有参数,并返回唯一实例
*newInstance--像getInstance一样,但newInstance能确保返回的每个实例都与其他实例不同
*getType--像getInstance一样,但是在工厂方法处于在不同的类中时使用。Type表示工厂方法所返回的对象类型
*newType--像newInstance一样,但是在工厂方法处于在不同的类中时使用。Type表示工厂方法所返回的对象类型
分享到:
相关推荐
声明的返回类型的任何子类都是允许的。返回对象的类也可以随每次发布而不同。EnumSet 类(详见第 36 条)没有公共构造方法,只有静态工厂。在 OpenJDK
声明的返回类型的任何子类都是允许的。返回对象的类也可以随每次发布而不同。EnumSet 类(详见第 36 条)没有公共构造方法,只有静态工厂。在 OpenJDK
本文目录一、什么是静态工厂方法?二、静态工厂方法的优势三、静态工厂方法的缺点四、总结 一、什么是静态工厂方法? 对于类而言,在我们需要获取一个实例时,最传统的方法都是通过new新建一个对象,这是jvm通过调用...
83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中...
85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中...
79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java...
主要介绍了java用静态工厂代替构造函数使用方法和优缺点,需要的朋友可以参考下
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
理解构造器--构造器和方法的区别 要学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区别。 我们说构造器是一种方法,就象讲澳大利亚的...
2、熟练掌握顺序表的查找方法和有序顺序表的折半查找算法以及静态查找树的构造方法和查找算法。 3、掌握二叉排序树的生成、插入、删除、输出运算。 二、实验内容 1、有序顺序表的二分查找的递归算法
java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); static{ System.out.println("tttt"); } X(){ System....
【Flutter】Dart 面向对象 ( 命名构造方法 | 工厂构造方法 | 命名工厂构造方法 ) https://hanshuliang.blog.csdn.net/article/details/113746569 博客源码快照
NX12.0.2.9 后处理构造器,覆盖安装目录下面的同名文件夹即可
一个词法分析器构造过程模拟器的设计与实现_孙文明.caj一个词法分析器构造过程模拟器的设计与实现_孙文明.caj一个词法分析器构造过程模拟器的设计与实现_孙文明.caj一个词法分析器构造过程模拟器的设计与实现_孙文明...
java 静态块实例块构造器调用在继承中的调用顺序,包括代码及注释
Python构造器用法解析全文共7页,当前为第1页。Python构造器用法解析全文共7页,当前为第1页。Python构造器用法解析 Python构造器用法解析全文共7页,当前为第1页。 Python构造器用法解析全文共7页,当前为第1页。 ...
包括Class类的模板、new对象的内存分配方式、实例和静态。
HYPERMILL五轴后处理构造器HYPERMILL五轴后处理构造器HYPERMILL五轴后处理构造器HYPERMILL五轴后处理构造器HYPERMILL五轴后处理构造器
c#面向对象静态类、构造方法、静态方法介绍,有功能介绍,详细的执行方法和过程,可以让新人对编程语言快速入门。熟悉应用变量、静态变量、方法、静态方法,读取、处理、写入等功能实现,实现举一反三。
亲测好用 大家快来下载吧 NX10.0后处理构造器,覆盖安装目录下面的同名文件夹即可 挺不错的一个资源