摘要: 不可变类只是其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期内固定不变。 为了使类成为不可变,要遵循下面五条规则:不要提供任何会修改对象状态的方法保证类不会被扩展使所有的域都是final的使所有的域都成为私有的确保对于任何可变组件的互斥访问。... 阅读全文
posted @ 2014-05-18 22:12 雨夜听声 阅读(503) 评论(0) 推荐(0) 编辑
摘要: class Point{ public double x; public double y;} 对于可变的类来说,应该用包含私有域和公有设值方法的类来代替:class Point{ private double x; private double y; Point(d... 阅读全文
posted @ 2014-05-18 18:25 雨夜听声 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来。 信息隐藏之所以非常重要有许多原因,其中大多数理由都源于这样一个事实:它可以有效的解除组成系统的各... 阅读全文
posted @ 2014-05-18 17:38 雨夜听声 阅读(447) 评论(0) 推荐(0) 编辑