1. 云栖社区>
  2. PHP教程>
  3. 正文

派生类数据库 单利模式

作者:用户 来源:互联网 时间:2017-12-01 15:50:04

数据库模式派生单利

派生类数据库 单利模式 - 摘要: 本文讲的是派生类数据库 单利模式, 派生类数据库 单利模式<?php//要解决的问题 在一个方法中多次调用类 //多次调用父类相同的类class Pdoo {public function __construct(){}//这是个数据库的类function selec


派生类数据库 单利模式

<?php
//要解决的问题 在一个方法中多次调用类
//多次调用父类相同的类
class Pdoo {
public function __construct(){}
//这是个数据库的类
function select($name) {
echo"正宗". $name;
}
}
class Conn {
static $db;
private function __construct() {
}
private function __clone() {
}
//返回的的是数据库的连接 而非Base类
public static function getInstance() {
if (self::$db == null) {
self::$db = new Pdoo ();
}
return self::$db;
}
//这个方法是无效的
function select($name) {
echo $name;
}
}
class Db {
static $db;
static $instanceInternalCache;
private function __construct() {
//初始话 跟连接数据库没有任何关系的
}
private function __clone() {
}
//不能在这里实例化
public static function getDb() {
}
//这里解决 在同一个方法中多次调用A不会被多次实例化
//解决不了多个派生类被实例化 也就是有多少派生类 数据库就要连接多少次
public static function getInstance($model) {
if (self::$instanceInternalCache [$model] == NULL) {
self::$instanceInternalCache [$model] = new $model ();
}
return self::$instanceInternalCache [$model];
}
function select($name) {
Conn::getInstance ()->select ( $name );
}
}
class A extends Db {
function s($name) {
$this->select($name);
}
public static function instance() {
return parent::getInstance ( __CLASS__ );
}
}
class B extends Db {
function s($name) {
$this->select($name);
}
public static function instance() {
return parent::getInstance ( __CLASS__ );
}
}
class Main {
public function t() {
A::instance ()->select ("1");
A::instance ()->select ("11");
B::instance ()->select ("2");
}
}
$t = new Main ();
$t->t ();

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库 , 模式 , 派生 单利 ,以便于您获取更多的相关知识。