登陆论坛
|
论坛注册
|
加入收藏
|
设为首页
|
RSS
首页
Linux频道
软件下载
开发语言
技术论坛
嵌入式频道
|
数据库开发
|
WEB开发
|
软件开发
|
嵌入应用
|
内核研究
|
SHELL
|
输入您的搜索字词
提交搜索表单
您当前的位置:
首页
>
Linux频道
>
Linux开发区
>
WEB开发
PHP5学习笔记第一节面向对象编程
时间:2006-10-17 11:42:50 来源:Linux联盟收集 作者:
/*
J8cLinux联盟
J8cLinux联盟
+――+
J8cLinux联盟
J8cLinux联盟
| = 本文为Haohappy读<;<;Core PHP Programming>>
J8cLinux联盟
J8cLinux联盟
| = 中Classes and Objects一章的笔记
J8cLinux联盟
J8cLinux联盟
| = 翻译为主+个人心得
J8cLinux联盟
J8cLinux联盟
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢
J8cLinux联盟
J8cLinux联盟
| = 欢迎批评指正,希望和所有PHP爱好者共同进步!
J8cLinux联盟
J8cLinux联盟
+――+
J8cLinux联盟
J8cLinux联盟
*/
J8cLinux联盟
J8cLinux联盟
第一节――面向对象编程
J8cLinux联盟
J8cLinux联盟
面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目。 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用。 这种情况发生于模块间结成秘密联盟的时候,就像第一次世界大战前的欧洲。
J8cLinux联盟
J8cLinux联盟
//haohappy注:喻指模块间的关联度过高,相互依赖性太强。更动一个模块导致其它模块也必须跟着更动。
J8cLinux联盟
J8cLinux联盟
想像一下,如果有一个用来处理登录的模块允许一个信用卡处理模块来分享它的数据库连接。 当然出发点是好的,节省了进行另一个数据库连接的支出。然而有时,登录处理模块改变了其中一个变量的名字,就可能割断了两者间的协议。导致信用卡模块的处理出错,进而导致处理发票的模块出错。 很快地,体系中所有无关的模块都可能由此出错。
J8cLinux联盟
J8cLinux联盟
因此,我觉得有点戏剧性地,绝大多数程序员都对耦合和封装心存感激。 耦合是两个模块间依赖程度的量度。 耦合越少越好。我们希望能够从已有的项目中抽走一个模块并在另一个新项目中使用。
J8cLinux联盟
J8cLinux联盟
我们也希望在某个模块内部大规模的更动而不用担心对其他模块的影响。 封装的原则可以提供这个解决方案。模块被看待成相对独立,并且模块间的数据通信通过接口来进行。 模块不通过彼此的变量名来窥探另一个模块,它们通过函数来礼貌地发送请求。
J8cLinux联盟
J8cLinux联盟
封装是你可以在任何编程语言中使用的一个原则。 在PHP和许多面向过程的语言中,可以偷懒是很有诱惑的。没有什么可以阻止你通过模块来构建一个假想的WEB. 面向对象编程是使程序员不会违背封装原则的一种方法。
J8cLinux联盟
J8cLinux联盟
在面向对象编程中,模块被组织成一个个对象。 这些对象拥有方法和属性。 从抽象的角度来看,方法是一个对象的所做的动作,而属性是对象的特性。从编程角度来看,方法就是函数而属性是变量。 在一个理想化的面向对象体系中,每个部份都是一个对象。 体系由对象及对象间通过方法来形成的联系构成。
J8cLinux联盟
J8cLinux联盟
一个类定义了对象的属性。 如果你在烘烤一组甜饼对象,那么类将会是甜饼机。 类的属性和方法是被调用的成员。 人们可以通过说出数据成员或者方法成员来表达。
J8cLinux联盟
J8cLinux联盟
每种语言提供了不同的途径来访问对象。 PHP从C++中借用概念,提供一个数据类型用来在一个标识符下包含函数和变量。最初设计PHP的时候,甚至PHP3被开发出时,PHP并不打算提供开发超过10万行代码的大型项目的能力。随着PHP和Zend引擎的发展,开发大型项目变得有可能,但无论你的项目规模多大,用类来书写你的脚本将可以让代码实现重用。这是一个好主意,特别当你愿意与别人分享你的代码的时候。
J8cLinux联盟
J8cLinux联盟
有关对象的想法是计算机科学上最令人兴奋的概念之一。开始很难掌握它,但我可以保证,一旦你掌握了它,用它的思维来思考将会非常自然。
J8cLinux联盟
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
相关文章
无相关信息
栏目更新
栏目热门
站内搜索:
Linux频道
下载频道
图库
商品
嵌入式频道
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站大全
|
免责声明
|
返回顶部
Copyright © 2007-2008 xxlinux.com, All rights reserved.
Powered by linux联盟
京ICP备05012402号