很多人对面向对象的理解,只停留在将某一功能代码封装到某一个类中。这样的做法,结果是,留给使用者调用。
但仅仅是这样做。很多程序使用面向对象就无法实现。原因相当简单。因为,某些代码一旦写出来,这个代码不是让别人调用你的函数。而是你要去调用别人的类,别人的函数代码。
为什么会有这种情况,主要是面向抽象编程时。很多具体的代码,只有在针对具体问题实现时,才能写出来。
打个比方:
比如你写一个模板引擎。其中有很多语言标记。你的解析器则需要对所有标记进行解析。但这些标记如果一开始就写全了,那就不可能有扩展性了。
这时,就需要有一种约定,将标记解析器定义为一个抽象的类,或一个接口,让写具体代码的人去按此约定进行实现。
这里,我们发现,这不是简单的让别人调用。而是写一个调用别人的代码的程序。
可见,你调我的,简单。只要你明白我有哪些类,哪些函数。而我调你的,则我要告诉你,你的类要怎样写,其中要有哪些函数。
使用这样的方法,不仅是易于大应用的功能模块划分,清析的架构,同时,也是降低模块之间的耦合度。
PHP提供了各种途径来帮助我们实现程序中的“我调你”,这包括:
抽象函数:必须要由你实现的函数,我将其定义为抽象函数。格式是:
abstract public function funcName($param /.../ ){};
抽象函数中无实现的代码。因为实现的代码是要你实现的。
如果一个类中有抽象函数,那么,此类就是抽象类,不能被实例化成对象。
但如果,一个类中所有方法全是抽象的,则,我们就不必再定义为抽象类了。我们完全可以使用接口。
接口定义与类定义相同,只是把class关键字换成interface就行了。
可见,我给你留下了这些可以填空的空白。填与不填,由你决定。这也就是给你提供了另一方式的“调用”。
如果你要用此抽象类,你只要继承此类,生成一个具体的类即可。
同样,如果你要用此接口,你也只要写一个类,实现此接口即可以了。
有时,我的类是单件模式的,那么,就要在类中加一个保护,保证它永远在此模式下运行。这个保护方式是加一个函数:
final private function __clone() {}
函数中无实现代码,是阻止类的复制。这样就保证永远只有一个了。
由此我们看到了,这里有一个final,final是对函数,对方法实现最终保护。所谓最终保护,就是说它是终点,不会再生出下一代了。
对函数而言,子类中不会再生成同名函数,对于类,此类再也不可被继承。
所以,如果某个类不能再被继承,则定义时,前面加一个final。某个方法,包括构造函数,可以在定义前面加上final关键字。
为什么要这样呢?这样做的目的是为了简单,我可以少写很多代码,同时,你也会在约定的模式之下。保证代码强壮性与安全性。
分享到:
相关推荐
根据提供的文档信息,本文将详细解析“20140207PHP01_PHP面向对象程序设计.pdf”中关于PHP面向对象程序设计的关键知识点。 ### 面向对象概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它...
**PHP面向对象编程** PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域。随着版本的不断升级,PHP越来越注重面向对象(Object-Oriented Programming, OOP)特性,为开发者提供了更强大的功能和更好的代码组织...
- **实质**:面向对象是将问题域中的实体用属性和方法的形式表达出来,对象间通过方法调用进行交互。 - **好处**:面向对象更符合人类思维,易于理解和实现复杂业务;降低程序设计与实际世界的距离,提高代码的...
1. 面向对象的概念:面向对象编程是一种编程架构,它将程序视为一组相互作用的对象集合。每个对象都能够接收信息、处理数据并与其他对象进行通信。面向对象编程的基本原则是使用对象来代表现实世界中的实体。 2. 类...
PHP是一种支持面向对象编程的混合型语言,允许开发者在项目中混合使用面向对象和过程化编程。尽管有人认为PHP不是真正的面向对象语言,但PHP的面向对象特性足以支持大型项目。 面向对象编程涉及的技术点广泛,包括...
### PHP面向对象编程的7个好习惯解析 #### 保持谦虚:信息隐藏与封装的重要性 在面向对象编程中,“保持谦虚”意味着遵循信息隐藏的原则,即避免直接暴露类的内部状态或实现细节。这一习惯的核心是封装,通过封装...
在《PHP面向对象编程》中,作者深入探讨了如何在PHP中应用这些概念,从而提升代码的质量、可维护性和可重用性。 ### 1. 面向对象编程的概念 #### 1.1 对象与类 在现实世界中,一切都可以被视为对象,如书、刀、叉...
### PHP面向对象教程知识点详述 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种重要的编程范式,它将程序设计中的复杂结构划分为相互关联的“对象”。这些对象可以是现实生活中...
### PHP面向对象教程知识点详解 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程架构,强调通过将程序分解为多个相互关联的对象来实现软件的设计和实现。OOP的核心在于将数据...
面向对象编程的核心在于将复杂的问题分解为一系列相互协作的对象。在PHP5中,开发者可以定义类,包含属性(变量)和方法(函数),然后创建对象实例,通过对象来调用方法和操作属性。通过这种方式,不同对象可以互相...
### PHP面向对象技术详解 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种程序设计思想,它的核心是将程序中的各种元素视为对象,通过对象来构建和组织整个程序。面向对象程序...
面向对象是现代编程语言中的核心概念,它将程序设计为由相互协作的对象组成,提高了代码的可读性、可维护性和复用性。在PHP中,面向对象的引入使得开发大型复杂项目变得更加高效。 首先,我们需要理解PHP中的类和...
面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中常用的一种编程范式,旨在通过模拟现实世界中的实体及其相互关系来构建软件。PHP,尽管最初设计时并非纯粹的面向对象语言,但自PHP 5版本起,它...
在面向对象的编程语言中,类是一个独立的程 序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。 LAMP 大讲堂PHP 面向对象技术(全面讲解) 网站:http://www.phpchina.com 投稿:phper@phpchina.com ...
面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。对象可以看作是一种数据结构,它将数据(属性)和代码...掌握上述知识点,可以帮助新手快速入门PHP面向对象编程,并在项目中高效地使用面向对象的特性。
### PHP面向对象教程知识点详解 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将计算机程序视为一系列对象的集合,每个对象都能接收信息、处理数据并向其他对象...
面向对象编程(Object-Oriented Programming,OOP)是PHP5的核心特性之一,它使得PHP能够更好地适应大型项目和复杂系统的开发需求。OOP强调将数据和操作数据的方法封装在一个单独的单元——类(Class)中,通过类...