effective-java-四
第13条: 使类和成员的可访问性最小
第14条:在共有类中使用方法而不是公有域
第15条:使可变性最小
使类成为不可变,要遵循下面五条规则
1. 不要提供任何会修改对象状态的方法
2. 保证类不会被扩展
3. 所有的域都是final的
4. 所有的域都是私有的
5. 确保对任何可变组件的互斥访问
第16条:复合优先于继承
第17条:要么为继承而设计,并提供文档说明,要么就禁止继承
构造器绝不能调用可被覆盖的方法
第18条:接口优先于抽象类
1. 现有的类可以很容易被更新
2. 接口是定义mixin(混合类型)的理想选择
3. 接口允许构造非层次结构的类型框架
第19条:接口只用于定义类型
常量接口是不好的使用方法
要导出常量应该使用不可实例化的工具类
第20条:类层次优先于标签类
第21条:用函数对象表示策略
第22条:优先考虑静态成员类
嵌套类
被定义在另一个类的内部类,嵌套类存在的目的应该只是为外部类提供服务。如果嵌套类可能会用于其他环境中,它就应该是顶层类
嵌套类有四种
- 静态成员类
- 非静态成员类
- 匿名类
- 局部类
除了第一种之外,其他三种都被称为内部类