php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>Php编程>文章内容
PHP中的面向对象和面向过程OOP……
来源:收集整理 作者:jdlhs 发布时间:2008-02-22  

 对象狂热

  对象狂热者热衷于在任何时候使用面向对象的风格来书写代码。他们没有真正考虑过用这种方式是否会影响程序的执行效率。有时候让人觉得他们更享受抽象的设计概念而不是现实的代码。他们通常很可能是项目管理者或文档书写者。

  对象狂热者指出,如果没有抽象的设计方法我们仍然在使用0和1进行编程。他们喜欢用伪码来描述问题。极端的例子是对象狂热者即使知道有时候会牺牲效率仍然使用对象。 除了PHP,他们最喜欢的语言是Java和Smalltalk。在PHP世界中,他们可能会开发PEAR模块,贡献文档化非常好,易于维护的代码。

  不要偏激和讽刺

  你知道为什么论坛上总是充斥着各种偏见吗?你的经验阅历,你对新事物的态度都可能是原因。作为程序员,我们需要时常注意这些偏见并以开放的心态去学习新事物。

  你的编码倾向?

  考虑一下当你书写PHP代码时有什么偏好或倾向。通常这些偏好是比较隐晦的。有时候你可能在每个项目中有着同样的偏好。我个人倾向于“优雅”,但我不想在此定义如何才是“优雅”的代码,那应当出现在另一篇文章里。但是,理论化的偏好不一定适合于实际项目?相反地,他们常常是一种偏见。

  理论化的倾向

  用最少行数的代码提供一个完整的解决方案

  在问题层次上考虑问题

  这听起来似乎很不错。但“代码行数最少”如何来衡量呢?要把代码注释算在内吗? 我们是否要把每一行都串起来而只用分号来区分呢?大括号呢? 很明显这种想法是错误的。

  再解释一下什么是“问题层次”。这是否意味着在我们的方案中的每个概念都需要建立一个类?或者需要在每个独立的文件里保持问题的每个部分,并建立一个复杂的文件树来与现实中的问题相对应?就是这样的想法--为每个想法准备一个文件或类!

  很明显这些概括极端化后变得可笑。但现实中存在更微妙的证明。是否常常会有程序员在团队合作时插入一行复杂的,强大的但没有注释的代码?这对于接手维护这些代码的人来说无疑是非常令人沮丧的事。 相反地,是否你的官僚的自以为是的上一级程序员常常“横冲直撞”般地,建立接口和类? 而那些接口和类不仅仅限制了负责实现的程序员,也限制了效率和灵活性,导致客户要求扩展程序时手足无措。 这些都是以上各种倾向的微妙的证明。

  实际倾向php开源com

  一个项目开始的时候,首先要寻求实际的编码目的和方向。旧电脑回收这个项目的实现目标是什么?下面是可能是答案。

  开发快,发布快

  尽可能快地运行

  易于维护,改进和扩展

  发布一个API

  第一、二个方向倾向于使用过程化的风格,而最后两个倾向于使用面向对象的风格。

  什么时候某种方式更有效?

  现在让我们试着评价每种方式在现实中的优势。

  面向过程案例

  有关PHP的面向过程化编程优势的一个基础性的论据是:PHP是一个解释性的语言--这意味着,不像其它的语言一样,它不会被编译成一个可执行的包,而是被解释并马上执行。它是一种脚本语言并存储于文本文件中(例外的,如果使用了Zend编译工具)。

  另一个反对在PHP4及更低版本中使用面向对象方式进行编码的理由是:在PHP的早期版本中对象的功能并没有经过良好设计。就像Rasmus曾说过的:“那是事后才想起要增加的功能”。这意味着在PHP4及更早的版本中,对象的效率是个问题。但PHP5出来后,这种情形会有改观。

  以下两个最流行的PHP程序--OsCommerce 和PhpMyAdmin.主要使用面向过程的编码方式。它们构建起来很快,运行起来也很快。两者都很自然地采用嵌入HTML的方法。

  OsCommercephp开源com

  OsCommerce实际上使用了很多对象,但绝大部分功能是通过“过程”来实现的。我曾经hack过OsCommerce,为其增添一些对于客户非常实用的自定义功能。这个过程是挺麻烦的,因为OsCommerce中的很多过程代码,没有使用模板化的系统,并且设计成多语言版,所以需要花一定的时间才能上手。但是它可以工作,事实上它已经很好地运行在数目众多的电子商务站点上了。OsCommerce同时提供了一个论坛和一个开发框架用来开发模块和插件。因此,现在已经有了很多其它开发者提供的实用的功能模块。

  PhpMyAdmin

  PhpMyAdmin直接使用的类只有一个:Mimer SQL Validator类,依赖于PEAR包中的Mail_Mime, Net_DIME 和 SOAP。这可能是考虑到开发的方便:利用现成的可以实现目的的代码。除此之外,一切都是面向过程的,HTML和PHP代码也是混杂在一起。

  PhpMyAdmin是我几乎每天都要用到的一个工具,用来对少量的数据表进行不太复杂的处理。有时我甚至鼓励我的客户将它当作后端的管理工具来使用(当然我会限制他们的权限)。PhpMyAdmin的表现非常棒,也很快。有时我想在一些项目中扩展PhpMyAdmin作为后端的管理工具,利用它的一些新功能如数据查询语句书签可以很方便地展示给我的客户和编辑。随着每个新版本的推出,PhpMyAdmin越来越实用,功能越来越强大。

  面向过程小结

  以上两个使用面向过程风格的程序都有非常好的文档和代码注释。OsCommerce提供的开发框架可以增加维护性和扩展性。但是两者都没有提供API,不能扩展程序到另外的体系中。

  如果你想把OsCommerce整合到一个帐单程序中,需要花费大量的时间和精力,就像扩展PhpMyAdmin成一个供客户使用的后端管理工具。不过从它们设计的目的来看,确实在各自的领域中都表现地很出色。

  面向对象案例php开源com

  支持面向对象风格者的观点都集中于扩展性和封装。仅仅用面向对象的方式来写代码不会为你的代码产生文档,但它可以鼓励你为之添加文档。并且,为了易于扩展,你可能会写一个API。 PHP5许诺让面向对象编程更加愉快。我开玩笑地将它称为PHP中的”Java 2”版本,因为它整合了Java中的许多特性,像接口,面向对象模型,try-catch语句等。但即使在对面向对象支持不力的PHP4中,仍然出现了许多出色的面向对象应用程序。
(阅读次数:

共4页: 上一页 [1] 2 [3] [4] 下一页
上一篇:Smarty:Why use it?模板怎么使用的呢?   下一篇:一个IP到底值多少钱?
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·PHP生成验证码图片的源代码
·PHP会话对(Session)使用入门
·Php部分常见问题总结[bug]
·php正则表达式的快速学习方法
·高手传经:学习PHP重在坚持
·用php生成静态页面的php函数
·PHP对文本数据库的基本操作方法
·用 PHP 读取文件的正确方法
·讲解PHP+MySQL的分页显示示例
·用PHP构建一个简易监视引擎
·我是怎样打造简单的PHP&MYSQL留
·用PHP实现表单验证码登陆校验
  相关文章
·怎样用php操作php文件的……
·PHP面向对象OOP编程快速入门...
·Web2.0时代PHP将受更多人的青睐
·PHP传值和传引用、传地址的区别
·增加PHP的Session存储和处理能力
·开发大型php项目的方法、oop面向
·PHP5的DirectoryIterators递归扫
·面向对象OOP的5原则:单一职责原
·PHP编程:使用PHP生成1000个随机
·面向对象OOP的5原则:开放封闭原
·实例学习动态网页PHP的语法{初学
·OOP面向对象:Liskov替换原则--L

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号