扎实的java功底系列(Effective java)3
使用私有构造器或者枚举类型强化单例模式
单例是我们常用到的设计模式之一,java中能够使用私有构造器和使用枚举类型强化单例的使用。
首先,模拟一个场景,还是车子,假设一个人有一量车,那么他要用这辆车去完成某些功能,比如送孩子上学、去买菜还是当黑车拉客,那么他都是用的一量车,并没有换车,就可以使用单例的设计模式。
public class Car { private int price; private int length; private int height; private int width; private String color; private static Car car = new Car(); /** * 完成送孩子上学的功能,送的速度可能和价格相关(纯扯淡),实际上用接口实现,这里先不写 */ public void sendChildren(){ System.out.println("您花费了"+price*3+"的时间"); } public static Car getInstance(){ return car; } }
更好的Singleton方法:
编写一个包含单个元素的枚举类型
package serviceprovider; public enum Car { thecar; private int price = 2; private int length; private int height; private int width; private String color; /** * 完成送孩子上学的功能,送的速度可能和价格相关(纯扯淡),实际上用接口实现,这里先不写 */ public void sendChildren(){ System.out.println("您花费了"+price*3+"的时间"); } }
package serviceprovider; public class CarTest { public static void main(String[] args){ Car.thecar.sendChildren(); } }
thecar 就是一个完成的类型对象,能够通过它完成对象方法的调用。
虽然这种方法还没有广泛使用,但是已经成为实现Singleton的最佳方法。

浙公网安备 33010602011771号