码迷,mamicode.com
首页 > 编程语言 > 详细

【读书笔记 - Effective Java】01. 考虑用静态工厂方法代替构造器

时间:2018-04-04 16:10:06      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:return   eof   stat   AC   actor   OLE   名称   推导   区别   

获取类的实例有两种方法:

1. 提供一个公有的构造器(最常用)。

2. 提供一个公有的静态工厂方法(static factory method)。

// 静态工厂方法示例
public static Boolean valueOf(boolean b) {
    return b ? Boolean.TRUE : Boolean.FALSE;
}

 

静态工厂方法的优势:

1. 有名称。当一个类需要多个带有相同签名(方法签名 = 方法名 + 参数列表)的构造器时,就用静态工厂方法代替构造器,并且慎重选择名称以便突出它们之间的区别。

2. 不必每次调用它们的时候都创建一个新对象。

3. 可以返回原返回类型的任何子类型的对象。

4. 在创建参数化类型实例的时候,使代码变得更加简洁。类型推导:比如HashMap<K,V>里的K和V就是参数,如果参数一多,每次new的时候都要写一遍,显得冗长。

 

静态工厂方法的缺点:

1. 类如果不含公有的或者受保护的构造器,就不能被子类化。

2. 与其他的静态方法实际上没有任何区别。

 

课外链接:服务提供者框架。有三个重要组件:

1.Service Interface:提供者实现。

2.Provider Registration API:注册有哪些provider。

3.Service Access API:调用provider的service。

一个可选组件:Service Provider Interface。

详解:https://blog.csdn.net/zl3450341/article/details/7227197

【读书笔记 - Effective Java】01. 考虑用静态工厂方法代替构造器

标签:return   eof   stat   AC   actor   OLE   名称   推导   区别   

原文地址:https://www.cnblogs.com/sei-cxt/p/8717422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!