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

php抽象类有什么用, php抽象类的作用

高老师9年前 (2017-06-13)PHP2090

    理解抽象类最快的方法就是使用场景,最近在看布尔PHP视频中看到这样的讲解非常容易懂,分享出来。

    假设如下场景:

    团队准备开发某网站,表建好了,页面设计好了.

    A组负责开发底层数据库操作类(DB)(多个DB类,操作Mysql类,操作SQLSERVER,SQLlite......).

    B级负责调用DB类.

    A组发生了争执,MySQL? Oracle? DB2? sqlite?规范是什么?

    B组.... 在争执中漫长等待.

    能否让B组不等待?

    解决:

    A组和B组先定1个数据库类的模板:

    模板中对 方法名,参数,返回值,都做严格的规定

    此时不管A组选用什么数据库,对于B组来说,没有任何影响;

    代码如下:(只需要知道抽象类是一种规范,具体实现由子类来做。)

 //定义一个抽象类,相当于模板
 abstract  class  DB{
 	
	/*
	 * 连接数据库,从配置文件读取配置信息
	 * 
	 */
	abstract public  function conn();
	
	
	/*
	 * 执行参数中的sql语句
	 * 
	 */
	abstract public  function query($sql);
	
	
	/*
	 * 获取多行数据
	 * 
	 */
	abstract public  function getAll(); 
	
	
	/*
	 * 获取单条数据
	 * 
	 */
	abstract public  function  getOne();
	
	
	/*
	 * 自定义创建Sql语句执行 (数据关联数组,表名字,动作,条件)
	 * 
	 */
	abstract public function  Exce($data,$table,$act='insert',$where='0');
	
	
	
	
	/*
	 * 返回上一条insert语句产生的主键值
	 * 
	 */
	abstract public  function lastId();
	
	
	/*
	 * 返回上一条语句影响的行数
	 * 
	 */
	abstract public  function affectRows();
	
	
	
	
 }
 
 
 
 //01.使用抽象类先来创建一个Mysql操作类 
class Mysql  extends DB{
	

	public function __construct(){

	}
	
	
	public function conn(){
	
	}
	
	
	
	public  function query($sql){

	}
	
	
	public  function getAll(){
	
	} 
	
	
	public  function  getOne(){
		
	}
	
	
	public function  Exce($data,$table,$act='insert',$where='0'){
		
	}
	
	
	public  function lastId(){
		
	}
	
	
	public  function affectRows(){
		
	}
	
	
}


 //02.使用抽象类先来创建一个Mssql操作类 
class Mssql  extends DB{
	

	public function __construct(){

	}
	
	
	public function conn(){
	
	}
	
	
	
	public  function query($sql){

	}
	
	
	public  function getAll(){
	
	} 
	
	
	public  function  getOne(){
		
	}
	
	
	public function  Exce($data,$table,$act='insert',$where='0'){
		
	}
	
	
	public  function lastId(){
		
	}
	
	
	public  function affectRows(){
		
	}
	
	
}

    

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

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

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

分享给朋友:

“ php抽象类有什么用, php抽象类的作用” 的相关文章

swoole中的worker_num和task_worker_num

swoole中的worker_num和task_worker_num

(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...

composer自动加载类库(非psr4规范的文件)

composer自动加载类库(非psr4规范的文件)

在项目下的composer配置文件修改(PaySdk是我这里一个支付sdk的目录,包含各种各样的支付sdk,这样写的意思让composer自动把PaySdk下的所有文件自动加载):"autoload": {      &...

php redis事务

php redis事务

概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...

php通过event扩展创建定时器,php毫秒级定时器

php通过event扩展创建定时器,php毫秒级定时器

PHP简单定时器可以通过pcntl_signal创建闹钟信号来实现。但是缺点很明显,性能一般,要自己实现守护进程,不支持毫秒级定时器,单进程不支持多个闹钟信号,不能跨平台运行event扩展支持的事件多,性能高。<?php //创建event配置.[空配置] $eventConfig ...

php管道通信

php管道通信

(1).管道是干嘛的?管道是用于进程之间通信的,传播或交换信息(2).管道有几种?(2.1).匿名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。通常是指父子进程关系。(2.2).高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中...