当前位置:首页 > PHP > 正文内容

php抽象类和接口作用

高老师8年前 (2017-07-25)PHP1816

【一】.抽象类

假设如下场景:

团队准备开发某网站,表建好了,页面设计好了.A组负责开发底层数据库操作类(DB),B组负责调用DB类.

但是此时A组发生了争执,MySQL? Oracle? DB2? sqlite?到底使用什么数据库?B组.... 进入漫长的等待.

解决方法:

A组和B组 先定1个数据库类的模板,模板中对方法名,参数,返回值,都做严格的规定,此时不管A组选用什么数据库,对于B组来说,没有任何影响。

例如:AB定义一个总的数据库操作类模板

abstract class DB {

 abstract public function getRow($sql);

 abstract public function getAll($sql);

 abstract public function getOne($sql);

 abstract public function upDate($sql);

 abstract public function Exec($sql);

}

class MySQLdb extends Db {

//重写

}

class SqlLitedb extends Db {

//重写

}

项目中使用其他数据库没有关系,只需要继承DB类,例如mysql操作类继承DB类,sqllite操作类继承DB类.然后对具体的方法进行重写。

在多人开发中,我不需要知道SqlLitedb类或者MySQLdb类内部如何实现,因为他们都是按照严格的DB类来实现,我只需要知道DB类的方法名称,参数,返回值就能随便操作任意数据库,而不需要关心如何实现。

【二】.接口

接口是对功能的抽象,功能各拆成小块,因为它支持多实现,能自由组合成新的物种.

通过对抽象类和接口的了解,我们可以将抽象类理解为类的模板,接口则是方法的模板,接口的粒度更小,用于描述通用的方法

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/36.html

分享给朋友:

“ php抽象类和接口作用” 的相关文章

cookie中文乱码,GBK下

cookie中文乱码,GBK下

上家公司开发医院挂号系统,系统采用GBK编码。ajax发送的中文用户名让PHP保存为cookie出现乱码的解决方案。1.Javascript变量var user=document.getElementById('user').innerText; user=escape(u...

 php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is  post '); } elseif ($_SERVER['...

php 获取当前执行文件,php 获取当前执行文件,php 获取当前文件

php 获取当前执行文件,php 获取当前执行文件,php 获取当前文件

php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/*  * 获取当前PHP文件名称  */ if (!function_exists('phpself&#...

PHP异常处理,PHP自定义错误,PHP记录错误日志

PHP异常处理,PHP自定义错误,PHP记录错误日志

面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...

Thinkphp Call Stack,PHP调用栈Call Stack的获取

Thinkphp Call Stack,PHP调用栈Call Stack的获取

ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...

php finally使用

php finally使用

<?php /**  * @throws Exception  */ function curl() {     throw  new \Exception('err...