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