面向对象的思考方式:万物皆对象。
面向对象的最有思想:面向对象分析(Object Oriented Analysis,OOA)、面向对象设计(Object Oriented Design,OOD)、面向对象编程(Object Oriented Programming)
把程序看作一系列函数的集合不是面向对象思想。
抽象的层次性:程度越高,包含东西越多,细节越多;内涵越大外延越小。
软件领域的任何问题,都可以通过增加一个间接的中间层来解决。
如何进行抽象:
寻找共性。抽象的过程就是合并同类项、归并分类、寻找共性的过程。开发过程中,如果遇到大量重复或部分重复的代码,往往意味着抽象的缺失,可用通过合并归类来优化。
对通用方法、类进行封装。
提升抽象层次:有些东西无法归类一起时,可上升一个层次,让他们在更高的抽象层次上产生逻辑关系。
开发过程中,很多时候需要通过抽象层次的提升来提高代码的可读性和通用性。
构筑金字塔:**自下而上思考,总结概括;自上而下思考,结论先行。**
如何提升抽象思维?
多阅读,图像比文字更具象,阅读锻炼抽象能力、想象能力。下孩子玩手机看电视,不利于锻炼抽象思维。
职业学习比大学更加具象–零件部件、机械看得到、摸得到。
多总结:笔记不要原文摘录,总结自己的话,提升抽象思维能力。具备较强抽象思维能力的人,才能抓住事物本质。
领域建模训练。