抽象是指 为了某种目的,对一个概念或一种现象包含的信息进行过滤,移除不相关的信息,只保留与某种最终目的相关的信息;
从另外一个角度看,抽象就是简化事物,抓住事物本质的过程;
架构设计的过程其实是从简单到复杂再回归到简单的过程。
架构设计往往从简单的需求开始,不断的分析需求背后隐含的其他内容,由点及面,举一反三,探讨该需求可能延伸的场景从而带来的变化,然后全局化的思考,系统化的设计,这是架构设计从简单到复杂的过程。
但是架构设计的目的不是把简单的事情搞的很复杂,而是要让复杂的设计回归到简单,而回归简单的过程就是抽象的过程,从复杂的系统中找到核心的、稳定的、共性的因素加以抽象,抓住问题的本质,简化模型和过程。
抽象是复用的基础,越是具象的东西越是难以复用;
抽象也是做扩展性设计的基础,因为没有抽象何来扩展;
如何锻炼抽象思维?
-
反复的进行“简单->复杂->简单”的设计过程,举一反三,而后发现共同规律。
-
编程的时候要灵活的使用设计模式,大部分设计模式都蕴含着抽象的思维。
-
多学习优秀开源软件的源码,特别是开发框架,多领悟其中设计的思路。
-
开发的时候不要着急动手开发具体功能,而是要先做模型设计或者流程设计,设计的过程也是不断抽象、扩展的过程。