effective-java学习笔记---静态工厂方法替代构造方法
使用静态方法的优点:
1.它们是有名字的,生成的客户端代码更易阅读。
如:返回素数的静态方法 BigInteger.probablePrime
2.与构造方法不同,它们不需要每次调用时都创建一个对象。
3.与构造方法不同,它们可以返回类型的任何子类型的对象。
4.返回对象的类可以根据输入参数的不同而不同。
如:枚举类 EnumSet,当枚举类型小于等于64个时,返回RegularEnumSet实例,是一个long类型;当枚举数大于64个时,返回JumboEnumSet实例,是一个long类型的数组
5.在编写包含静态方法的类时,返回的对象的类不需要存在。如:JDBC
服务提供者框架中有三个基本组件:
1).服务接口,表示实现(Connection)
2).提供者注册API,用来注册实现(DriverManager.registerDriver)
3).访问API,客户端使用该API获取服务的实例。(DriverManager.getConnection)
服务提供者框架可选的组件:
4)服务提供者接口,描述一个生成服务接口实例的工厂对象。(Driver)
使用静态方法的限制:
1.没有公共或受保护的类不能被子类继承。(鼓励程序员用组合而不是继承)
2.程序员很难找到它。

浙公网安备 33010602011771号