title: 很有经验的面向对象开发者也会有这种感觉吗？
desc: 引言<br>面向对象设计（OOD）在解决软件设计复杂性上有其贡献，但是也因为不当的使用过于复杂的继承树过度的设计等导致OO受到越来越多的诟病（ref 孟岩云风陈硕等人博客，以及一些国外软件开发大牛之评论
topic: 编程
content: 这是人性的缺陷带来的。所以才会提倡TDD嘛。TDD最关键的地方不是先写test case（其实这是不可能的），而是要让你的test case先编译过。这就要求你先给出类的接口，然后写test case。整个过程会有助于你思考你的类到底组织的合适不合适。等test case写完了，你就可以开始填代码了。再有经验也很难一下子就拿出个好的设计来。
answerer_tags: 专业造轮子，拉黑抢前排。gaclib.net