[一起品小说m.17pxs.com 无弹窗小说网]
本文中反复提到了一个词,“思想”。
什么是“思想”?“思想”是个笼统的概念,泛指解决问题的思路和手段。
“思想”中被提及频率最高的,当属“面向对象”思想。那么什么是“面向对象”?
首先说“对象”,“对象”是一个指代词,相当于日常用语的他、她、它,并不具体指什么东西。所以“面向对象思想”就好解释了,就是使用ta的方式,去解决问题。
世间万物都可为对象,比如把“手机”当做对象,那么消费者拿到手机之后,并不需要去研究手机是怎么制造的,也不需要了解手机的运动原理,反正只要知道怎么去使用它,接打电话也好还是娱乐也好,就可以了。
面向对象的实现,依靠的封装、继承、多态等方法,最终达到的目标是是提高效率。比如说,手机就是一个封装好的对象,让用户使用手机前先去理解手机的原理,这既不科学也不效率。
计算机面向对象思想的诞生,就催生了许多面向对象的解决方案,这里面最广泛被用到的就是面向对象框架。
面向对象框架最大的作用便是分工协作,提高开发效率。比如说甲负责项目中的某个功能,需要使用乙的开发功能,互相约定好参数和返回值即可,并不需要去关心对方代码怎么写的。
java是一个纯面向对象式语言,大名鼎鼎的j2ee和j2e便是面向对象框架。而市场占有率近年来逐步攀升的php,也有着属于自己众多的框架,比如ii和i。甚至还有一些傻瓜式框架,比如hp、dedes、disuz,提供给非计算机专精开发者使用。
但是值得一说的是,过分的迷信某个框架是不可取的,框架只是一种辅助手段,最终决定代码是否优秀的依旧还是人。
比如说ii框架,被无数不知情的吃瓜众吹捧过,其结构复杂、功能完善,上手慢,但熟练以后,相较于其他框架能够得到更高的开发效率。
但是强大就意味着可塑性差,潜力有限,这在面对亿级数据时便显得心有余而力不足。也因此,其貌不扬结构简单的i框架,以及在其基础上各种改造而来的自研发框架,便在最高的层次发挥了巨大的作用。
面相对象与之相对的便是面向过程。在面向对象思想如此强势的通知局面下,面向过程依旧有着自己的一片天地。
面向过程就是直接面对问题,像流水账一样一次把代码弄出来,没有。其缺点是代码又臭又长、可读性和可维护性差,但是它的优点是面向对象无可取代的:少了“安排”对象的资源消耗,面向过程的执行效率更高,在面对海量负载以及脚本任务中,面向过程都扮演着重要的角色。
由此可见,计算机行业里,并不存在说哪个技术一定是最先进的,哪个框架一定是最完美的。适合自己的,符合当下要求的,才是最好的。
真正的武林高手,一花一叶都是顺手拈来,绝不会拘泥于某一个招式,所以本书从来不去强调哪门技术又或者框架,以免给人误导。
就说ythn这门语言,作为一门shell层执行脚本,并且还是个面相过程式语言。恐怕十年前的人们打死也想不到,它会在领域大放光彩。
以上说的计算机面相对象,或者框架,都是狭隘的面向对象。广义的面向对象思想,则是广泛存在于世间万物的。
比如说手机,这个说过了。再比如说菜刀切菜,菜刀的材质有必要去弄清楚吗?
再具体到本书中假设的情况,面向对象的本质是分工协作,并忽视“部分”做“整体”的一个手段,是社会分工越来越细的必然产物。