一直困扰在按照面向对象设计总会设计出一些只有get和set方法的对象,那个时候就会想,这样设计导致的代码冗杂问题该怎么解决可是自己又是按照彻头彻尾的面向对象设计进行的,后来在看敏捷软件开发,原则模式与实践的时候突然发现,在最开始设计的确没错,可是设计的顺序出现了错误,最应该的设计应该是,从最抽象的业务流程进行设计,然后逐渐在这上面添加具体功能,这也就是说,在最开始的设计的确没问题,可以为我们提供一个更具体的思路,可不代表这样的设计是没问题的,相反,可能因为在此时并没有意识到哪些类是多余的,也就是这只是设计的雏形,我记得,书中说到,作为设计的最终产品不是UML图,反而是最后写出的产品,因为最后的产品才是那个你用面向对象,用需求拉动设计的最后的那个设计理念。
其实直到看完第六章才发现tdd原来可以用来剪除冗余设计,原来可以理清设计思路,以前一直只是觉得tdd浪费时间,心想着,我设计都设计好了,用tdd干嘛,还浪费时间,可是又没想过,这样的设计真的是最简单,最不多余的吗?对于细节的功能的设计真的没有问题吗?真的可以应对变化吗?
在这次的头脑实验里,用以上所说可以非常准确的设计出一个产品,快速而保持单一模式的产品。