![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读后小抄
kangkai550
这个作者很懒,什么都没留下…
展开
-
第1条:考虑用静态工厂方法代替构造器
在java中,一说到创建实例,自然就会想到构造器(构造函数),这是最简单也是最常用的创建实例的办法。然而,还有一种方法,那就是让类提供一个静态工厂方法 ,它只是一个返回类的实例的方法。总而言之,使用静态工厂方法的优势&劣势如下:[优势] 1.静态工厂方法有名称。 2.不必在每次调用都创建一个新对象。 3.可以返回原返回类型原创 2015-05-17 22:18:24 · 413 阅读 · 0 评论 -
第4条:通过私有方法强化不可实例化的能力
有时候,会需要编写一些只含有静态域和静态方法的类。例如工具类(utility class),这些类不需要被实例化,也不需要被继承。 因为实例化对他们并没有什么卵用。然而,在缺少显式构造器的时候,编译器会自动提供以个公有的无参的缺省构造器。这样,这个工具类和别的类就没有区别了(可以实例化,可以被类继承)为了确保类不可以被实例化,我们可以通过让类包含私有构造器,那么它就不能被实例化了public cl原创 2015-06-02 13:38:28 · 426 阅读 · 0 评论 -
第3条:用私有构造器或者枚举类型强化Singleton属性
Singleton指仅仅被实例化一次的类。例如:工具类,数据库连接,等在Java 1.5之前,实现Singleton有两种方法,这两种方法都要把构造器保持为私有的,下面直接贴实例代码,应该都能看懂:第一种: 需要获取的公有静态成员(需要实现Singleton的对象)是个final域public class UtillA{ public static final UtillA INSTANC原创 2015-06-02 13:07:45 · 393 阅读 · 0 评论 -
第2条:遇到多个构造器参数时要考虑用构建器
无论是静态工厂还是构造器都有共同的局限性:它们都不能很好地扩展到大量可选参数。然后重叠构造器模式可以实现这一需求,但是又许多参数的时候,客户端代码会变得很难编写,并且可读性很差于是我们想到JavaBean模式,在这种模式下,调用一个无参构造器来创建对象,然后使用setter来对每个参数进行设置,例: Book book = new Book(); book.setNam原创 2015-05-23 20:54:05 · 402 阅读 · 0 评论 -
第5条:避免创建不必要的对象
如何避免创建不必要的对像?充分利用可以重用的对象1.若对象不可变,它就始终可以重用先来一个极端的反面例子(一般程序员都不会无聊到这样做):String s = new String("stringtest");该语句没执行一次都会创建一个String实例,如果这在一个循环中,将会有很多String实例被创建,显然这是不必要的,显然这个代码应该这样写:String s = "stringtest";这原创 2015-06-07 21:42:44 · 405 阅读 · 0 评论 -
第6条:消除过期的对象引用
Java的垃圾回收固然省事,然而这并不代表着程序员不需要考虑内存管理。例如,下面是一个粗心的栈实现代码,直接贴有错误的部分public class Stack{ //省略。。。。。 //有误代码 public Object pop(){ if(size == 0){ throw new EmptyStackException();原创 2015-06-07 22:07:34 · 444 阅读 · 0 评论 -
第7条:避免使用终极方法
终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要的。一般在java中,一般用try-catch来完成回收一个对象所占资源的工作。终结方法的缺点: 1.不能保证会被及时地执行因为从一个对象变得不可到达开始,到它的终结方法被执行,所花费的时间是任意长的。因此,注重时间(time-critical)的任务不应该由终结方法来完成。 例如: 用终结方法来关闭已打开的原创 2015-06-09 19:28:41 · 423 阅读 · 0 评论