关于php,为什么要使用面向对象进行项目开发
2013-01-05 14:16
316 查看
php是一门弱语言,语法极其简单灵活,使得初学者很容易学习和掌握,这是php流行起来的一个很重要的原因。但,有利必有弊,这种编程模式使得php初学者很容易陷入“面向过程”的开发泥潭,这种“面向过程”的编程模式应用于一般性的小项目非常的便利,但一旦面对的是商业级别的项目,造成混乱和bug的代价是十分危险和严重的!作者本人也曾经深受其害。
什么是“面向过程”?什么又是“面向对象”?作者在这里不提书上那些生涩难懂的理论,只举出一个例子,但需要指出的是,以下的例子暂且不论“公共function”与“类”的比较,只是在本质上阐述这两个概念。
“活字印刷术”是我国古代的四大发明之一,在“活字印刷术”未被发明前,印刷书籍使用的是“雕版印刷术”,书的每一页都需要在模板上进行雕刻,然后再进行印刷。而“活字印刷术”,则是将每一个文字雕刻成模板,在需要印刷书籍时,先将若干个文字模板组合成一套大模板,再进行印刷。使用这种印刷方法,书籍的生产效率得到的极大的提升。
“雕版印刷术”好比是“面向过程”的开发模式,我们首先想到的是如何完成这个项目,项目中的每一个环节都需要一套特定的代码将其实现。
"活字印刷术"就好比是“面向对象”的开发模式,首先应该想到的是如何搭建整个项目的体系结构、把整个项目拆分成能够各司其职的单元(“活字印刷术”中的文字模板),由若干个单元进行衔接、组合成项目中的每一环。
若是只需要开发一个表单提交,就像印刷一张告示,“面向过程”绝对值得你使用,但要是开发一个商业项目,就像印刷一本书,“雕版印刷术”需要耗费多少的人力和材料?若是这本书需要更改其中的一个词,多少个模板需要被重新雕刻啊!借用曾经在百度贴吧中流行的一句话:“强弱悬殊,高下立判!”。
再来说说php中的面向对象,php从php4开始支持面向对象,php5全面支持面向对象,这其中有很多开发者(包括作者本人)对其大为不屑,很不理解一向以灵活著称的php为什么会引入如此规范的东西,并用实例指出面向对象的模式用传统代码也可以实现。
的确是这样,但以作者的亲身经历告诉各位,事情没那么简单。暂且不说面向对象的模式在开发和维护上有多少优点,只说实际的。面向对象是一种标准,大部分的公司和组织都认可并且运用的一种标准,对于程序员而言,只要学会这种标准,在大部分的公司都能工作。对于企业而言,只要运用这种标准,大部分的程序员在加入公司后都能极快的上手工作,时间就是金钱,这可以为公司减少多少成本!
计算机技术是服务于人类的,更快更好的项目开发对于这个时代来说不言而喻,正是这种环境,才使得机器语言汇编语言衍生出中级语言c语言,c语言又衍生出高级语言php。
什么是“面向过程”?什么又是“面向对象”?作者在这里不提书上那些生涩难懂的理论,只举出一个例子,但需要指出的是,以下的例子暂且不论“公共function”与“类”的比较,只是在本质上阐述这两个概念。
“活字印刷术”是我国古代的四大发明之一,在“活字印刷术”未被发明前,印刷书籍使用的是“雕版印刷术”,书的每一页都需要在模板上进行雕刻,然后再进行印刷。而“活字印刷术”,则是将每一个文字雕刻成模板,在需要印刷书籍时,先将若干个文字模板组合成一套大模板,再进行印刷。使用这种印刷方法,书籍的生产效率得到的极大的提升。
“雕版印刷术”好比是“面向过程”的开发模式,我们首先想到的是如何完成这个项目,项目中的每一个环节都需要一套特定的代码将其实现。
"活字印刷术"就好比是“面向对象”的开发模式,首先应该想到的是如何搭建整个项目的体系结构、把整个项目拆分成能够各司其职的单元(“活字印刷术”中的文字模板),由若干个单元进行衔接、组合成项目中的每一环。
若是只需要开发一个表单提交,就像印刷一张告示,“面向过程”绝对值得你使用,但要是开发一个商业项目,就像印刷一本书,“雕版印刷术”需要耗费多少的人力和材料?若是这本书需要更改其中的一个词,多少个模板需要被重新雕刻啊!借用曾经在百度贴吧中流行的一句话:“强弱悬殊,高下立判!”。
再来说说php中的面向对象,php从php4开始支持面向对象,php5全面支持面向对象,这其中有很多开发者(包括作者本人)对其大为不屑,很不理解一向以灵活著称的php为什么会引入如此规范的东西,并用实例指出面向对象的模式用传统代码也可以实现。
的确是这样,但以作者的亲身经历告诉各位,事情没那么简单。暂且不说面向对象的模式在开发和维护上有多少优点,只说实际的。面向对象是一种标准,大部分的公司和组织都认可并且运用的一种标准,对于程序员而言,只要学会这种标准,在大部分的公司都能工作。对于企业而言,只要运用这种标准,大部分的程序员在加入公司后都能极快的上手工作,时间就是金钱,这可以为公司减少多少成本!
计算机技术是服务于人类的,更快更好的项目开发对于这个时代来说不言而喻,正是这种环境,才使得机器语言汇编语言衍生出中级语言c语言,c语言又衍生出高级语言php。
相关文章推荐
- 我们为什么要使用PDO进行PHP程序开发?
- 使用commons-dbutils进行JDBC项目开发
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之四 组织机构管理源码分享
- 【项目搭建】使用spring-boot进行REST风格的微服务开发入门
- 关于Android项目使用注解开发框架在eclipse环境下的配置
- 关于php项目的开发回顾总结第六章-----性能决定高低
- 项目开发中对使用的第三方库统一进行管理__添加属性表/页
- 关于如何使用Docker构建PHP的开发环境
- 使用C语言进行面向对象的开发--GObject入门[10]
- 关于php使用fputcsv进行大数据的导出
- 使用C语言进行面向对象的开发--GObject入门[5]
- 在PHP中使用Mockery进行测试驱动开发(TDD) - 上
- 使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)
- 使用C语言进行面向对象的开发--GObject入门[3]
- 使用Android Studio 1.3 版本进行NDK开发 编译运行hello-jni项目及分析
- 使用UML进行项目开发
- 使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
- 使用commons-dbutils进行JDBC项目开发
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享
- 使用Notepad++进行php开发所必需的插件