PHP核心技术与最佳实践.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
第1 章面向对象思想的核心概念 面向对象是什么?以下是维基百科对面向对象的解释: 面向对象程序设计(Object-Oriented Programming, O O P )是一种程序设计范型,同时也 是_ 种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的 重用性、灵活性和可扩展性。 面向过程、面向对象以及函数式编程被人们称为编程语言中的三大范式(实际上,面向过 程与面向对象都同属于命令式编程),是三种不同编码和设计风格。其中面向对象的核心思想 是对象、封装、可重用性和可扩展性。 面向对象是一种更高级、更抽象的思维方式,面向过程虽然也是一种抽象,但面向过程是 一种基础的抽象,面向对象又是建立在面向过程之上的更高层次的抽象,因此对面向对象的理 解也就不是那么容易了。 面向对象和具体的语言无关。在面向对象的世界里,常常提到的两种典型语言— C + + 和Java 。它们都是很好的面向对象的开发语言。实际上,像C 语言这种大家普遍认为的面向 过程开发的主打语言,也能进行面向对象的开发,就连JavaScript这门很久之前一直被视作 面向过程编程的语言,人们对它的认识也发生了改变,逐渐承认其是面向对象的语言,并且 也接受了 JavaScript独特的面向对象的语法。所以我们说面向对象只是种程序设计的理念, 和具体的语言无关。不同的程序员既可以用C 语言写出面向对象的风格来,也可以用Java写 成面向对象的风格。这里并不是说面向对象的风格要优于面向过程,而是二者各有自己所擅 长的领域。OOPL ( Object- Oriented Programming Language ) 可以提高程序的封装性、复用性、 可维护性,但仅仅是“可以” ,能不能真正实现这些优点,还取决于编程和设计人员。就 PHP而言,其不是一门纯的面向对象的语言,但是仍然可以使用PHP写出好的面向对象风格 的代码。 实际开发中,面向对象为什么让我们觉得那么难?面向对象究竟难在什么地方?为什么面 向对象开发在PHP里一直不是很受重视,并且没有得到普及和推广? PHP对面向对象的支持到 底如何?怎么学习面向对象的思维? 在这里,我们将就面向对象一些概念展开讨论,其中重点讨论PHP特色的面向对象的风格 和语法,并通过相互借鉴和对比,使读者认识PHP 自身的特点,尤其是和其他语言中不同的 地方。 1 . 1 面向对象的“形” 与“本 类是对象的抽象组织,对象是类的具体存在。 2200年前的战国时期,赵国平原君的食客公孙龙在骑着白马进城时,被守城官以马不能人 城拦下,公孙龙即兴演讲,口述“ 白马非马” 一论,守城官无法反驳,于是公孙龙就骑着他的 白马(不是马的)进城去了。这就是历史上最经典的一次对面向对象思维的阐述。 公孙龙的“ 白马非马” 论如下: “ 白马非马” ,可乎?曰:“可。” 曰“何哉?” 曰:“马者,所以命形也;白者,所以命色 也。命色者非命形也。故曰:„ 白马非马‟ 。 曰:“有白马不可谓无马也。不可谓无马者,非马 也?有白马为有马,白之,非马何也?” 曰:“求马,黄、黑马皆可致;求白马,黄、黑马不可 致。使白马乃马也,是所求一也。所求一者,白者不异马也。所求不异,如黄、黑马有可有不 可,何也?可与不可,其相非明。故黄、黑马一也,而可以应有马,而不可以应有白马,是白 马之非马,审矣 !‟‟ 2 ♦ PHP核心技术与最佳实践 公孙龙乃战国时期的“名家” ,名家的中心论题是所谓“名” (概念)和“实” (存在)的 逻辑关系问题。名者,抽象也,类也。实者,具体也,对象也。从这个角度讲,公孙龙是我国 早期的最著名的面向对象思维的思想家。 “ 白马非马” 这一论断的关键就在于“非” 字,公孙龙一再强调白马与马的特征,通过把 白马和马视为两个不同的类,用“非” 这一关系,成功地把“ 白马” 与“马‛ 的关系由从属 关系转移到“ 白马” 这个对象与“马” 这个对象的相等关系上,显然,二者不等,故‚白马非 马” 。而我们正常的思维是,马是一个类,白马是马这个类的一个对象,二者属于从属关系。 说“ 白马非马 ,就是割裂马与白马之间的从属关系,偷换概念,故为诡辩也。 白马非马这个典故,我们可以称之为诡辩。但我们把这个问题抽象出来,实际上讨论的就 是类与类之间的界定、类的定义等一系列问题,类应该抽象到什么程度,其中即涉及了类与对 象的本质问题,也涉及了类的设计过程中的一些原则。 1 . 1 . 1 对象的

文档评论(0)

mwap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档