最初看面向对象方面的知识是因为看到很多不好的代码,包括我自己的,然后看《重构》,《HeadFirst面向对象开发》,《设计模式》,看了部分《敏捷开发:原则,实践,模式》,然后是《设计原本》,《建筑的永恒之道》,coolshell上的关于面向对象设计的批判。
重构——在函数级别提高了我的认识
然后想看看流行的设计模式,据说掌握了这个就能设计出好程序,很牛逼。然后找了些资源,
发现这些讲的是各种设计模式,是什么,在什么情况下用。但看不懂,因为完全找不出应用场景,也不知道为什么要用。浆糊中
后来我想应该先看基础,于是看到head first系列的面向对象设计,感觉思想是对的。
第一步找出需求,不单是客户提出的,还有隐含的。
第二步设计出基本的实现
第三步用各种设计原则和设计模式来做。
只是在分析阶段的例子,比如创建什么对象让我有点不太好理解,就是找名词,确定类,再建立联系。有点反直觉。不太适应,然后放下了。
后来找到了敏捷那本书,很早就买了,但之前看不懂,再看一下,发现设计模式的背后是设计原则,如DRY,IOC等
再看到coolshell上的面向对象的反讽例子,感觉到设计原则和设计模式,就是为了让程序更易读,更易修改。如果没有变化或复杂性,就不必要引入复杂性的东西。设计模式本身是有些复杂度的,如果能准确预知未来的变化或当前已经存在复杂性,那就用设计模式分离变化。如果当前情况很简单,就不用那么复杂了。平衡之道。
设计原本和建筑的永恒之道还不太懂