Effective Java Item3:Enforce the singleton property with a private constructor or an enum type

Item3:Enforce the singleton property with a private constructor or an enum type

采用枚举类型(ENUM)实现单例模式。

public enum Elvis {
    INSTANCE;

    public void leaveTheBuiding(){
        System.out.println("a single-element enum type is the best way to implement a singleton");
    }
}

使用方式:

Elvis.INSTANCE.leaveTheBuiding();
时间: 2024-12-28 06:16:08

Effective Java Item3:Enforce the singleton property with a private constructor or an enum type的相关文章

Effective Java 英文 第二版 读书笔记 Item 3:Enforce the singleton property with a private constructor or an enum type.

Making a class a singleton can make it difficult to test clients. package singletonProperty; //ingleton with public final field public class ElvisField { public static final ElvisField INSTANCE=new ElvisField(); private ElvisField(){ } } package sing

Effective Java Item4:Enforce noninstantiability with a private constructor

Item4:Enforce noninstantiability with a private constructor 通过构造私有化,禁止对象被实例化. public class UtilClass { private UtilClass(){ //防止类内的函数调用构造函数创建对象 throw new AssertionError(); } }

Effective Java Item2:Consider a builder when faced with many constructor parameters

Item2:Consider a builder when faced with many constructor parameters 当构造方法有多个参数时,可以考虑使用builder方式进行处理. 实例代码: public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; pr

Effective Java 目录

<Effective Java>目录摘抄. 我知道这看起来很糟糕.当下,自己缺少实际操作,只能暂时摘抄下目录.随着,实践的增多,慢慢填充更多的示例. Chapter 2 Creating and Destroying Objects Consider static factory methods instead of constructors Consider a builder when faced with many constructor parameters Enforce the s

Effective Java 第三版——3. 使用私有构造方法或枚类实现Singleton属性

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 3. 使用私有构造方法或枚类实现Singleton属性 单例是一个仅实例化一次的类[Gamma95].单例对象通常表示无状态对象,如函数(条目 24)或一个本质上唯一的系统

[Effective Java]考虑用静态工厂方法代替构造器

本文主要介绍如何使用静态工厂方法已经在那种场合来使用这种方式代替构造方法. 众所周知,对于类而言,我们为了获得一个类的实例对象,通常情况下会提供一个公有的(public) 的构造器.当然除了这种方法以外,我们还可以通过给类提供一个public的静态工厂方法(static factory method)的方式来完成,让它返回一个类的实例. 先看一个简单的Boolean的示例,这个示例将boolean基本类型值转换成一个Boolean对象的引用. public static Boolean valu

Effective Java 读书笔记(2创建和销毁对象)

第一章是引言,所以这里不做笔记,总结一下书中第一章的主要内容是向我们解释了这本书所做的事情:指导Java程序员如何编写出清晰.正确.可用.健壮.灵活和可维护的程序. 2.1考虑用静态工厂方法代替构造器 静态工厂方法与构造器相比有四大优势: (1)静态工厂方法有名称,具有适当名称的静态工厂方法易于使用.易于阅读: (2)不必每次在调用它们的时候都创建一个新的对象: (3)可以返回原返回类型的任何子类型的对象: (4)在创建参数化类型实例的时候,它们使代码变得更加简洁. 同时静态工厂方法也有两大缺点

Effective java 中文版本阅读总结

点击链接查看云笔记原文 花了半天时间,贪婪的啃读了Effective java 这本书(虽然闻名已久,但是很少看书) 翻着翻着就有种废寝忘食的感觉,下班了都留下来专门看书,后来索性带回家看了. 以下是内容总结,主要是对个人感觉有用的,有很大部分没有提及,因为水平有限,还没有来得及消化 1 引言 2 创建和销毁对象 # 静态工厂方法由于构造器 Boolean.valueOf(String); 几乎总是优于构造器Boolean(String);构造器每次调用的时候都会创建一个新的对象 * 对象创建比

Effective Java:创建和销毁对象

前言: 读这本书第1条规则的时候就感觉到这是一本很好的书,可以把我们的Java功底提升一个档次,我还是比较推荐的.本博客是针对<Effective Java>这本书第2章所写的一篇读书笔记.博客中也有会一些个人对某个模块的理解和深入探究,希望与大家一起进步. 概述: 本章的主题是创建和销毁对象:何时以及如何创建对象,何时以及如何避免创建对象,如何确保它们能够适时地销毁,以及如何管理对象销毁之前必须进行的各种清理动作. 相关内容: 1.考虑用静态工厂方法代替构造器 思路解析: 如果有人问你,如何