这是一本关注程序细节并具有浓厚实战意义的书籍, 它主要是来告诉我们如何写出容易让人理解的代码. 如果非要在书名前加一个限定词的话, "java实现模式"可能更贴切一些, 因为里面的代码都是以java作为例子来说明的. 作者是junit的贡献者之一, 因此里面的很多例子都是从junit中来的.
这本书也解决了很多自己在实际开发中的一些抉择困惑. 是一本非常值得常看的书籍. 另外翻译的也非常不错, 不像有些书让人看了云里雾里的, 不知所云.
本书按照方法, 行为, 类, 状态, 集合, 框架的顺序依次对相关的实现模式加以说明来阐述如何写出好的代码. 也是本书的重点, 集合主要是在讲java.util下的集合类的使用法则, 框架部分主要是框架的开发有自己的规则, 围绕兼容性, 扩展性方面在说事儿, 没怎么看明白, 可以略过^_^
价值观
沟通, 简单, 灵活也是实现模式的三个价值观)影响了我在编程时所作的每个决策
价值观有普遍的意思, 但是很难直接使用, 模式虽然可以直接是使用, 但是却针对具体的场景, 原则在二者之间搭建了桥梁.
模式描述了要做什么, 价值观提供了动机, 原则把动机转化成实际行动.
程序的绝大多数开销是在他第一次部署之后才产生的.
应该选择那些提倡灵活并能带来及时收益的模式.对于立即增加成本却收效缓慢的模式, 最好多一点耐心, 先把他们放回口袋, 需要的时候再拿出来.
原则
局部化影响
组织代码结构时, 要保证变化只会产生局部化影响.
最小化重复
将逻辑和数据绑定
把逻辑与逻辑所处理的数据放在一起 , 如果有可能尽量放在一个方法中, 或者退一步, 放在一个对象里面, 最起码也要放到一个包下面. 发生变化时, 逻辑和数据很可能会被同时改动. 如果放在一起, 那么改动他们所造成的影响就会只停留在局部.
对称性
与其说是对称性, 还不如说是代码的一致性, 也就是方法的命名最好能做到一致, 符合人类的认知习惯, 比如有个add方法, 最好能提供个remove方法