- 浏览: 22248 次
- 性别:
- 来自: 济南
最新评论
Effictive Java 读书笔记
- 博客分类:
- 学习笔记
Effictive Java
1 考虑用静态工厂方法代替构造函数来创建对象
静态工厂方法可以封装实例的细节,并且能控制实例的数量,减轻jvm的堆栈中的压力,与用new语句调用的构造方法相比,有以下区别:
1:构造方法的名字必须与类名相同。这一特性的优点是符合Java语言的规范,缺点是类的所有重载的构造方法的名字都相同,不能从名字上区分每个 重载方法,容易引起混淆。静态工厂方法的方法名可以是任意的,这一特性的优点是可以提高程序代码的可读性,在方法名中能体现与实例有关的信息
2:每次执行new语句时,都会创建一个新的对象。而静态工厂方法每次被调用的时候,是否会创建一个新的对象完全取决于方法的实现。根据这一特点,静态工厂可以创建以下几种方式的对象:
<1> 单例类:只有惟一的实例的类。
<2>枚举类:实例的数量有限的类。
<3>具有实例缓存的类:能把已经创建的实例暂且存放在缓存中的类。
<4>具有实例缓存的不可变类:不可变类的实例一旦创建,其属性值就不会被改变。
3:new语句只能创建当前类的实例,而静态工厂方法可以返回当前类的子类的实例,这一特性可以在创建松耦合的系统接口时发挥作用。
但静态工厂方法又有缺点:
1:如果将要创建的对象的构造方法是私有的或是default的,就有可能不能创建该对象。
2:采用构造函数实例化对象,是语言的规范,而静态工厂方法与其他的静态方法没有区别,就增加了用户使用的区别。但这可以尽量采用一些家喻户晓的名字解决,让用户看到改名字就知道该方法是静态工厂方法。如getInstance()。
2 使用似有构造函数加强singleton属性
在此,
1 考虑用静态工厂方法代替构造函数来创建对象
静态工厂方法可以封装实例的细节,并且能控制实例的数量,减轻jvm的堆栈中的压力,与用new语句调用的构造方法相比,有以下区别:
1:构造方法的名字必须与类名相同。这一特性的优点是符合Java语言的规范,缺点是类的所有重载的构造方法的名字都相同,不能从名字上区分每个 重载方法,容易引起混淆。静态工厂方法的方法名可以是任意的,这一特性的优点是可以提高程序代码的可读性,在方法名中能体现与实例有关的信息
2:每次执行new语句时,都会创建一个新的对象。而静态工厂方法每次被调用的时候,是否会创建一个新的对象完全取决于方法的实现。根据这一特点,静态工厂可以创建以下几种方式的对象:
<1> 单例类:只有惟一的实例的类。
<2>枚举类:实例的数量有限的类。
<3>具有实例缓存的类:能把已经创建的实例暂且存放在缓存中的类。
<4>具有实例缓存的不可变类:不可变类的实例一旦创建,其属性值就不会被改变。
3:new语句只能创建当前类的实例,而静态工厂方法可以返回当前类的子类的实例,这一特性可以在创建松耦合的系统接口时发挥作用。
但静态工厂方法又有缺点:
1:如果将要创建的对象的构造方法是私有的或是default的,就有可能不能创建该对象。
2:采用构造函数实例化对象,是语言的规范,而静态工厂方法与其他的静态方法没有区别,就增加了用户使用的区别。但这可以尽量采用一些家喻户晓的名字解决,让用户看到改名字就知道该方法是静态工厂方法。如getInstance()。
2 使用似有构造函数加强singleton属性
在此,
发表评论
-
关于Map常用的方法
2014-02-25 09:25 7611 将Map转换成List // key list List ... -
eclipseSSH整合
2013-02-25 16:16 6451 Exception loading sessions fr ... -
简单java ibatis
2012-12-24 13:50 0ibatis小巧,易上手,适合于小型项目开发。 其中对于引用的 ... -
自己做的Ajax小练习
2012-11-13 08:42 6451 关于Ajax三个方法的固定写法 <scri ... -
自己做的web练习
2012-11-12 19:54 590参见附件:service 与client -
struts2小知识点
2012-11-01 10:19 6611 默认的命名空间“ namespace="&qu ... -
2012-10-11 Hibernate杂碎
2012-10-11 18:35 5681 从Hibernate的参考手册中,我们基本可以总结出这样几 ... -
Hibernate BaseDao
2012-10-09 17:16 0package net.comtops.dao.impl; ... -
Hibernate 实现增删改
2012-10-09 16:53 685Configuration conf = null; S ... -
Hibernate 主键生成策略
2012-10-09 16:14 580此处我们只针对常用的数据库类型进行说明,其他的略过: 1 Or ... -
JSP一个正确的验证码
2012-09-27 15:13 671image.jsp页面 <%@ page conte ... -
SQL SERVER分页
2012-09-27 09:51 659分页方案一:(利用Not In和SELECT TOP分页) ... -
JDBC数据库连接
2012-09-10 16:11 507MySQL: String Driver="com ... -
oracle分页以及rownum、rowid的使用
2012-09-09 14:13 707分页存储过程: 1.根据ROWID来分,执行时间0.03秒 c ... -
oracle自增序列
2012-09-08 17:52 530创建自增序列 CREATE SEQUENCE SEQn ... -
ObjectOutputStream
2012-08-02 11:05 913要根据用户选择,向一个文件写一个类(Student)的实例,使 ... -
java
2012-07-30 14:45 359- 第一种情况: Comparator cmp = Col ... -
初始化块和构造器
2012-07-24 08:31 5891,构造器的语法格式 修饰符:public private,p ... -
黑马程序员:学习笔记第一天
2012-03-26 21:28 521android培训、java培训、期待与您交流! ------ ...
相关推荐
effective java 读书笔记,第二版自己摘要并翻译,以备速查。
Effective Java读书笔记.pdf
2021年EFFECTIVEJAVA读书笔记.docx
Effective-Java读书笔记,别人分享的
Effective Java读书笔记,记载了大部分我觉的有用的东西,前半部分有代码说明,但后半部分的代码,太过琐碎,就没有整理
基于Effective Java第二版的读书笔记,可以帮助你更好的阅读这边Java圣经,更快的理解其思想
安卓艺术开发探索读书笔记,EffectiveJava读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看. 更新说明 v2.2.2 1.增加了一些最近在学习比较好的安卓大神的博客. 2.增加了来自GeniusVJR整理的安卓...
作者HotBitmapGG,源码StudyProject,一款 Material Design 风格的 AndroidRank 干货学习客户端,需要...安卓艺术开发探索读书笔记,EffectiveJava 读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看.
loveincode's notes 学习工作中的一些记录,收藏。 操作系统 , 编译原理 , 计算机网络 , 互联网协议... 常用数据结构与算法 Java 实现 数据结构 与 排序算法 ...读书笔记 Effective Java , HTTP权威指南 , Java
java软件笔试题 my notebook 我的笔记本,大部分是在大二大三的时候写的笔记,对于已经毕业的来说可能比较基础甚至naive。...7:读书笔记 thinking in java effective java Android开发艺术探索 Android插件化开发指南
Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述...