13,最小化类和成员的可访问性。这也没什么好说的,高内聚,低耦合,暴露出去的东西越少越好。类只有两种访问级别:public和package private。成员有四种访问级别, public, private, protected, package private。以前还没学Java的时候,就在《程序员》杂志上看过一个C++的文章说protected是鸡肋,成员应该要么private要么public,写多了代码发现还真是这么回事,protected这种东西,用处不大,还有个奇怪的不在同一个包里的子类不能直接使用的问题,真是应该尽量少用。
14,在公有类里面,使用访问器而不是公有的字段。字段是内部实现,不应该暴露出来。当然类如果不是public的,那暴露字段问题也不算太大。java类库里也有违反这个原则的类,比如AWT里面的Dimension和Point。
15,尽量减少类的可变性。不可变类有很多好处,他们的状态不会变化,是线程安全的,使用时不需要同步,坏处就是对于每个值,都会产生一个新的实例,比如在for循环里面使用+来连接String,会导致产生大量的String实例。这时候就需要提供辅助类,比如StringBuilder。
16,多用组合,少用继承。如果继承一个不是你自己写的类,对方的内部实现可能会把你坑死。《Head First Design Patterns》第一章讲策略模式的时候也是这么说的。
17,如果类要被继承,那就精心设计和写好文档,或者干脆就禁止继承。如果类要被继承,那要注意一些事情,比如构造函数里不能直接或间接调用可被子类覆盖的方法,如果实现了Cloneable和Serializable接口,那么clone和readObject方法里也不能直接或间接调用可被子类覆盖的方法。
18,接口优先于抽象类。单继承的体系里,继承了一个类就再也不能继承其他类,接口算是个解决方案吧,其实还是多继承最直观,但是多继承控制不了冲突,所以Java这套解决方案比C++那套还是强一点的。
19,接口只用来定义类型。不要用接口来定义常量。
20,使用类的继承体系而不是一个大而全的类。这是面向对象的基础了吧,没什么好说的。
21,使用函数对象来实现策略。Java不像FL那样能把函数当成一等公民,也没有函数指针,只能这样了。这个主要是用来实现策略模式的。
22,静态成员类比非静态的更好。嵌套类共有四种:静态成员类,非静态成员类,匿名类,本地类。后三种都叫做内部类。静态成员类通常用作辅助类。匿名类限制很多,只能在声明的地方被初始化,不能实现多个接口,也不能既继承一个类又实现一个接口。
分享到:
相关推荐
"Effective Java读书笔记" Effective Java是一本关于Java编程语言的经典书籍,本笔记主要总结了Java语言的发展历程、静态工厂方法的应用、构造器模式的使用等重要知识点。 一、Java语言的发展历程 Java语言的发展...
《Effective Java》是Java开发领域的经典著作,作者Joshua Bloch深入浅出地阐述了编写高效、健壮的Java代码的技巧和最佳实践。以下是对该书部分内容的详细解释: 1. **产生和销毁对象** - Item1:静态工厂方法相比...
Effective Java 读书笔记 - 枚举与注解 本文总结了Effective Java 中关于枚举与注解的知识点,涵盖了枚举类型的优点、使用指南、避免使用 int 常量、使用 EnumSet 和 EnumMap 等。 枚举类型的优点 枚举类型提供了...
《Effective Java》是Java...以上仅是《Effective Java》一书中部分核心知识点的概述,实际的读书笔记中会更详细地解释这些概念,并给出具体的示例代码。通过深入学习和实践,开发者可以极大地提升其Java编程的水平。
读书笔记:Effective Java中文版第3版笔记
### Effective Java读书笔记(上) #### 第一章 引言 本书主要针对Java开发者提供了大量实用的编程指导建议,帮助读者提升代码质量和程序性能。在本章节中,我们将重点介绍对象的创建与销毁,以及一些重要的设计...
读书笔记:读Effective Java中文版第3版阅读源码测试案列
读书笔记:Effective Java中文版学习项目
读书笔记:Effective Java中文版第二版示例、笔记
读书笔记:Effective Java中文版 第2版
读书笔记:Effective Java 中文版(2版和3版)
读书笔记:Java练习包括《Java编程思想》《算法》《Effective Java》等
读书笔记:Effective Java中文版第二版示例代码
读书笔记:Effective.Java中文版(第3版)
读书笔记:Effective Java 中文版(第2版)总结 (美)Joshua Bloch 著
安卓艺术开发探索读书笔记,EffectiveJava读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看. 更新说明 v2.2.2 1.增加了一些最近在学习比较好的安卓大神的博客. 2.增加了来自GeniusVJR整理的安卓...
《BookReading:读书笔记》项目是一个专注于Java编程的个人学习资源库,旨在帮助开发者通过阅读和整理书籍来提升自己的技术能力。在这个项目中,你将找到一系列与Java相关的读书笔记,这些笔记涵盖了从基础概念到高级...
java软件笔试题 my notebook 我的笔记本,大部分是在大二大三的时候写的笔记,对于已经毕业的来说可能比较基础甚至naive。...7:读书笔记 thinking in java effective java Android开发艺术探索 Android插件化开发指南
loveincode's notes 学习工作中的一些记录,收藏。 操作系统 , 编译原理 , 计算机网络 , 互联网协议... 常用数据结构与算法 Java 实现 数据结构 与 排序算法 ...读书笔记 Effective Java , HTTP权威指南 , Java
作者HotBitmapGG,源码StudyProject,一款 Material Design 风格的 AndroidRank 干货学习客户端,需要...安卓艺术开发探索读书笔记,EffectiveJava 读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看.