面向对象的编程思想
编程,很简单,敲代码;思想,也简单,深思细想;编程思想,或者说思想编程,一说就知道难了,难在哪里?不是敲代码,而是有思想的编程,人之所以区别于猿,不就是思想的差别吗?(500字左右有彩蛋。)
现实世界中,任何一个操作或者是业务逻辑的实现都需要一个实体来完成,也就是说,实体就是动作的支配者,没有实体,就肯定没有动作发生!
面向过程主要是针对功能,而面向对象主要是针对能够实现该功能的背后的实体。面向对象实质上就是面向实体,所以当我们使用面向对象进行编程时,一定要建立这样一个观念:万物皆对象!
面向对象是相对面向过程而言。面向对象和面向过程都是一种思想,面向对象是我们考虑事情的方法,通常表现为我们是将问题的解决按照过程方式来解决呢,还是将问题抽象为一个对象来解决它。很多情况下,我们会不知不觉的按照过程方式来解决它,而不是考虑将要解决的问题抽象为对象去解决它。
面向过程简单直接,易于入门理解,模块化程度较低。而面向对象相对于面向过程较为复杂,不易理解,模块化程度较高。
例如洗衣服这件事的不同理解(来点地气)。
面向过程的方式去理解:准备衣服以及相关的用品,打开洗衣机,放入衣服和洗衣液,启动洗衣机。
面向对象的理解方法:买个全自动洗衣机,准备要洗的衣物及用品。或者找个人帮你洗,呵呵。
只言片语怎得尽!“陛下,臣妾做不到啊!”
所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。
面向对象的本质是什么?答案是抽象。从面对的问题域抽象出解决问题所需的对象是面向对象方法的核心思想。能否恰当抽象出足够的对象类型,特别是抽象出潜在的对象是决定软件设计好坏的关键。如果从更宽泛的角度讲,对我们所面对的复杂问题进行抽象,抓住本质,得出高度精炼的逻辑模型,对问题的求解具有重要的意义。从这个角度来说,抽象并不仅仅局限于对象的抽象,也包括流程和更高层的系统结构。
如何选择面向对象还是面向过程,对于一个有着丰富开发经验的老手来说,这是个得心应手的过程。而对于一个新手而言,其实从两者的对比就可以看出,当我们的业务逻辑比较简单时,使用面向过程能更快的实现。但是当我们的业务逻辑比较复杂时,为了将来的维护和扩展,还是面向对象更为靠谱点!(偷偷说:当年学思想政治的时候就发誓再也不学思想政治了,哪曾想还有个思想编程,再去哭45分钟...)
�