程序员设计思想的发展经历了几个典型的阶段:面向机器—->面向过程—->面向对象。
面向过程是一种“机械的思维”。
面向对象是一种”人类的思维”。
面向对象是一种以“对象”作为中心的编程思想,其中对象的含义可以理解为“存在的东西”。面向对象这种对现实世界的模拟的思想,其本质上就是”人的思想“,这是一个质的飞跃,意味着程序员可以按照人的思想来观察、分析、设计系统。什么叫作”人的思想“?你可以放下书本,关上计算机,站起来,环顾四周,你看到的是什么?可能是你的同事、桌子、墙、计算机、花盘;或者是电话、窗子、书本….这些都是”对象“吧?除了观察目标聚焦于”对象“,当我们观察人类世界各种事情的运作的时候,我们也不知不觉地聚焦于”对象“。例如,一个公司的运作,有董事长、经理、主管、员工等人分工合作,根据不同的任务或者外界竞争而去做各种各样的事情。人大部分的时间都是按照面向对象的方式进行思考的,而且人类世界主要也是按照面向对象的方式进行运转的,所以说,”面向对象”其实更符合人的思维习惯。
在面向过程有”程序=算法+数据结构“的经典总结,面向对象也有类似的总结:”程序=对象+交互“,其中对象就是具体存在的事物,而交互则是事物之间的相互作用、互动等。
面向对象是目前最流行的一种重新设计和实现思想,无论从事企业级开发、互联网应用开发,还是手机软件开发都会用到面向对象的技术。
如果你是一个程序员,但却不懂面向对象,那么真的可能被别人认为是”程序猿“了,因为这样的程序猿既像”猿“一样原始,又像”猿“一样稀少。