现在在很多程序设计语言一般都会这样讲,先是讲PHP的基本语法,然后讲程序流程控制。完了以后,就要讲OO了。怎末开的头呢,那肯定是先说面向过程的缺点,然后,在说面向对象的好处。列出优点来,相信大家也会列出来的,为了测试,请大家在回帖时,列出oo的优点吧! 好了,到这,老鸟要说了,难道oo就没缺点了吗?那是不可能的,任何事情都是两方面的,oo也不例外。那谁能列出它的缺点呢!呵呵! 但是,非常遗憾的时,从老鸟的多年做项目的经验来看,oo的缺点并不比面向过程的缺点要少,反而比它的缺点更大!为什么这么说呢,因为oo是一个抽象的概念,它其实是分为以下几个部分的内容: ooa:面向对象的分析 ood:面向对象的设计 oop:面向对象的编程 也就是说,当你要用oo来编程的时候,你就必须要学习上面3个概念。因为,那是软件开发过程必须要做的事情。而目前来说,大多数的书,都很少谈前两项,而是直接谈后面那一项,这就照成了很大的问题,这也是为什么大多数菜鸟们越学越头疼的问题所在! 为什么要这么讲解呢,我估计在国外,人家上学的时候就学习过前两项的课程,所以,人家的书都假定你已经具有的oo的概念了。但实际上,在国内,并没有专门的课程来 讲这部分,所以就造成很大的困难,有些菜鸟也因此放弃了学习。 有人说了,我看人家代码,不也能够掌握吗?呵呵,现在看代码都是纯看代码,也就是为了代码而看代码,这不是一个好的方法,估计你也会看不明白的,这说明你并没有从总体看个体,而是想从个体了解总体,那是根本不可能的。 其实,说白了,就是这个意思,我给了你摩托车的零件,你能给我生产出一个摩托车吗?也就是,我有了oo,你能oop吗?有人说,我是造不出来,可是摩托车厂的工人就可以造出来,这是为什么啊,那就是因为他们有一个设计图,而你没有的原因。那这个设计图是怎末设计的啊,为什么要这样设计啊,这就用到了ooa,ood的概念了。所以说,讲oo,并须要讲ooa,ood,只有你掌握上述知识,你才能更好的oop。 这就是老鸟多年来总结出来的经验,花了很长时间才得出来的啊。有人问了,那我该怎末学呢,呵呵,跟着老鸟的教程来学啊,这样才不会走弯路的。 欢迎灌水和拍砖!
本文转自
朱志兵 51CTO博客,原文链接:http://blog.51cto.com/richardzhu/196746 ,如需转载请自行联系原作者