• 全都有综合资源网

    分享赚钱

    一个专业的免费资源网

    每天更新100+优质资源

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方微信群

php“面向对象”和“面向过程”的区别

技术文章 每日更新
2024-6-11 18:28 80人浏览 0人回复
原作者: 全都有综合资源网 来自: 全都有综合资源网 收藏 分享 邀请
摘要

面向对象就是将一些常用的操作封装到类中,方便调用。无论您需要使用它们,您都可以拨打一次电话。这使得开发方便、维护方便!修改这个封装类即可达到修改整个站的目的! 面向服务对象三大特性(封装,继承,多态) ...

 

php“面向工具”和“面向进程”的区分9464 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-11 18:28

面向工具就是将一些常用的操纵封装到类中,方便挪用。不管您需要利用它们,您都可以拨打一次电话。这使得开辟方便、保护方便!点窜这个封装类即可到达点窜全部站的目标!
面向办事工具三大特征(封装,继续,多态)使得门生在做复杂的工作的时辰工作效力和正确率可以获得有用保证。
面向进程,即打包为子进程或函数的代码,在每个地方利用零丁的代码停止操纵,假如开辟代码是冗余的,保护相对烦琐,你在那里点窜它,它就只在你点窜它的地方工作。
php面向工具和面向进程的区分
在现实的开辟进程中,可以采用“面向工具”和“面向进程”两种思惟,最风行的是以面向工具为主体,面向进程为帮助。
这里有一个小例子来说明:
面向进程: 进修 PHP,最根基的毗连数据库和查询数据库将编写:
  1. <?php

  2. ?$Con?=?mysql_connect(.........);

  3. ?mysql_query('set?names?utf8');

  4. ?mysql_select_db(....);


  5. ?$query?=?mysql_query(?$sql?);

  6. ?while(?$Rs?=?mysql_fetch_aray(?$query?)?)?{


  7. ??echo?$Rs[0];

  8. ?}

上面那样,操纵10次数据库,就写10次这样的代码!

面向工具:建个php文件,把上面的代码封装成一个类:

  1. <?php

  2. ?class?mysql{


  3. ???var?$Con;

  4. ???var?$table;

  5. ???public?ConnEct(?$local,?$root,?$pass,?$base,?$code){


  6. ????$this?->?Con?=?mysql_connect(?$local,?$root,?$pass);

  7. ????mysql_query('set?names?'?.?$code);

  8. ????mysql_select_db(?$base?);



  9. ???}


  10. ??public?Tab(?$Table)?{



  11. ???$this?->?table?=?$Table;

  12. ???return?$this;

  13. ??}


  14. ??public?Select(){


  15. ????$rs?=?mysql_query('select?*?from?'?.?$this?->?table)

  16. ????while(?$Rs?=?mysql_fetch_array(?$rs?)?{

  17. ??????$Rule[]?=?$Rs;

  18. ????}


  19. ??return?$Rule;

  20. ??}

  21. ?}

把上面的代码保存成一个文件,比如是mysql.php,在需要操纵数据库的地方引入这个文件,那末要查询数据库的一个表就很是方便了!

  1. <?php

  2. ??include_once?'mysql.php';

  3. ??$Mysql?=?new?mysql;?//实例化一个类;

  4. ??$Mysql?->?ConnEct('localhost',?'root',?123456,?'table',?'utf8');//毗连数据库

  5. ??$Resul?=?$Mysql?->??Tab('user')?->?Select();//查询user表,并返回数组成果

  6. ??print_r(?$Resul?);?//打印这个数组

PHP编程气概之争
在很多编程说话中,面向工具和面向进程的编程只能利用其中的一种,可是 PHP 说话分歧于其他编程说话,也就是说,我们可以自在挑选或夹杂利用面向工具和面向进程的 PHP 说话。这经常致使开辟职员会商挑选哪类开辟气概。
PHP面向进程
面向进程的优点是运转速度快。今朝,有两种风行的面向进程的PHP法式:OsCommerce和PhpMyAdmin。首要利用面向进程的编码方式。它们建造得很快,运转得也很快。两者自然都采用嵌入HTML的方式。
上述两个利用面向进程气概的法式都有很是好的文档和代码正文。OsCommerce 供给了一个增加可保护性和可扩大性的开辟框架。可是两者都没有供给一个 API 来将法式扩大到另一个系统。
假如您想将OsCommerce集成到计费法式中,需要大量的时候和精神,例如将PhpMyadmin扩大为客户的背景治理工具。但是,从它们的设想目标来看,它们确切在各自的范畴表示杰出。
PHP面向工具
面向工具的优点是可扩大性和封装性。仅仅以面向工具的方式编写代码并不会为您的代码天生文档,但它确切激励您为其增加文档。别的,您能够希望编写一个易于扩大的 API。
今朝有两个风行的面向工具php法式:Smarty和FPDF。首要利用面向工具的编码。Smarty和FPDF都供给了文档完善的API来扩大主类。这说了然在类内构造方式和数据的需要性-偶然可以用函数和全局变量完成不异的功用,但这不轻易扩大。此外,利用工具对于跟踪和保护PDF或HTML文档的气概很是有帮助,而且您可以以分歧的格式公布不异的数据。Smarty和FPDF是利用工具构建灵活且有用的Library的出色示例。
两种编程方式各有千秋
Smarty和FPDF的适用性和可扩大性
Oscommerce 和 phpMyAdmin 的速度和性能
此选项还包括PHP的一些根基开辟。REC和PEAR都遭到了很多赞美和批评。我以为这两个项目供给了很好的例子来廓清PHP中进程式编程和面向工具编程之间的区分。
PECL 为 PHP 供给了一个扩大库,它是用 C 说话和面向进程开辟的,首要关注速度和简洁性。凡是,这些都是从现有的 LGPL 软件移植过来的,其中很多都是已经增加到 PHP 中的风趣特征。究竟,PHP 是用 C 说话编写的。
PEAR供给了很多风趣的类,例如构建Excel表或变动DNS记录。利用PEAR Class可以为您节省大量时候,甚至可以让您在不太熟悉PHP的情况下停止开辟-“我不大白,但它有用!"
我们用哪类方式编写法式?
当起头一个项目时,您必须首先追求现实的编码目标和偏向。这个项目标方针是什么?以下是能够的答案。
开辟快,公布快(开辟工作效力)
尽能够快地跑(有用地跑)
易于保护、改良和扩大(保护效力)
公布一个API
第一个和第二个偏向偏向于利用进程气概,而最初两个偏向偏向于利用PHP的面向工具气概。

网友概念:

实在呢?小型的,小我的,不需要二次或迭代开辟的,便可以面向进程,编码思绪简单也方便;可是对于多个合作的,中型以上的,前期需要增加新功用的,那末激烈倡议利用面向工具,代码封装、笼统、继续、多态的优点就起来了。。。

实在全数用自界说函数一样可以满足项目需求,利用面向工具只不外是为了让法式思绪更清楚,在多人合作开辟的时辰会便利。

比如,针对用户(注册,考核,材料等等关于用户的部分)建立 class User{}
这里面集成了各类对用户操纵的函数,你的同事大概协同开辟的伙伴,间接可以用这个User工具停止他在其他功用里的利用,比如需要挪用某个用户的材料 $User->get_profile($uid); 这样思绪就很清楚了,否则的话,他需要找到你的函数库,而且有能够东一个函数西一个函数,就浪费很多时候。

发现有复用次数大于2次以上的进程,就想法子重组成工具。为增强扩大性,连结低耦合。

对于复杂而没有反复只出现一遍的流程用进程,快速写成。

面向进程就是分析出处理题目所需要的步调,然后用函数把这些步调一步一步实现,利用的时辰一个一个依次挪用便可以了。

面向工具是把组成题目事务分化成各个工具,建立工具的目标不是为了完成一个步调,而是为了描叙某个事物在全部处理题目标步调中的行为。

例如五子棋,面向进程的设想思绪就是首先分析题目标步调:1、起头游戏,2、黑子先走,3、绘制画面,4、判定胜负,5、轮到白子,6、绘制画面,7、判定胜负,8、返回步调2,9、输出最初成果。把上面每个步挪用分此外函数来实现,题目就处理了。

而面向工具的设想则是从别的的思绪来处理题目。全部五子棋可以分为 1、黑白双方,这两方的行为是如出一辙的,2、棋盘系统,负责绘制画面,3、法则系统,负责判定诸如犯规、胜负等。第一类工具(玩家工具)负责接管用户输入,并奉告第二类工具(棋盘工具)棋子结构的变化,棋盘工具接收到了棋子的i变化就要负责在屏幕上面显现出这类变化,同时操纵第三类工具(法则系统)来对棋局停止判定。

可以明显地看出,面向工具是以功用来分别题目,而不是步调。一样是绘制棋局,这样的行为在面向进程的设想平分离在了总多步调中,极能够出现分歧的绘制版本,由于凡是设想职员会斟酌到现真相况停止各类百般的简化。而面向工具的设想中,绘图只能够在棋盘工具中出现,从而保证了绘图的同一。

功用上的同一保证了面向工具设想的可扩大性。比如我要加入悔棋的功用,假如要修改面向进程的设想,那末从输入到判定到显现这连续串的步调都要修改,甚至步调之间的循序都要停止大范围调剂。假如是面向工具的话,只用修改棋盘工具就行了,棋盘系统保存了黑白双方的棋谱,简单回溯便可以了,而显现和法则判定章不用顾及,同时全部对工具功用的挪用顺序都没有变化,修改只是部分的。

再比如我要把这个五子棋游戏改成围棋游戏,假如你是面向进程设想,那末五子棋的法则就散布在了你的法式的每一个角落,要修改还不如重写。可是假如你当初就是面向工具的设想,那末你只用修改法则工具便可以了,五子棋和围棋的区分不就是法则吗?(固然棋盘巨细似乎也纷歧样,可是你会感觉这是一个困难吗?间接在棋盘工具中停止一番小修改便可以了。)而下棋的大致步调从面向工具的角度来看没有任何变化。

固然,要到达修改只是部分的需要设想的人有充足的经历,利用工具不能保证你的法式就是面向工具,初学者大概很糟糕的法式员极能够以面向工具之虚而行面向进程之实,这样设想出来的所谓面向工具的法式很难有杰出的可移植性和可扩大性。


©版权免责声明
1、本站所有资源均来自用户上传及互联网。 如有侵权,请联系站长!
2、分享目的仅供大家学习交流。 下载后必须在24小时内删除!
3、不得用于非法商业目的或违反国家法律。 否则,后果自负!
4、本站提供的源代码、模板、插件等资源不包含技术服务。 敬请谅解!
5.如果出现无法下载、无效或有广告的链接,请联系管理员寻求帮助!
6、本站资源价格仅用于赞助,所收取的费用仅用于维持本站日常运营!
7、如果遇到加密压缩包,请使用WINRAR解压。 如果遇到无法解压的加密压缩包,请联系管理员!
8、由于精力有限,很多源代码无法详细测试(解密),部分源代码无法区分为病毒或误报,所以没有进行修改。 请在使用前进行筛选。

路过

雷人

握手

鲜花

鸡蛋
热门教程
专业的免费源码资源分享平台
每天更新100+资源

招募版主发工资

  • 官方在线客服

    QQ客服:红颜

    点击交谈

    在线客服:良子

    点击交谈

    在线客服:闵月

    点击交谈
  • 上海市虹口区海伦中心B座4F4055-4056室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信公众号

    加入官方微信

一个专业的免费源码资源互联网分享平台 ©2001-2024 https://www.douyouvip.com全都有综合资源网( 豫ICP备2024057239号-1 )赞助会员|网站地图 HTML
全都有综合资源网,WordPress主题PHP源码,PHP网站源码,网站模板,软件源码,网站源码免费下载,免费网站源码,网站源码模板,免费网站源码下载,wp免费源码,wp免费主题下载,PHP企业网站源码,软件源码下载