<?php
/**
* 工厂模式
工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。
简单的说,就是调用工厂类的一个方法(传入参数)来得到需要的类;
工厂模式解决的是如何不通过new建立实例对象的方法。
*/
interface mysql{
public function connect();
}
//mysqli链接数据库的类
class linkMysqli implements mysql{
public function connect() {
$con = mysqli_connect('localhost','root','root','test');
return $con;
}
}
//PDO链接数据库的类
class LinkPdo implements mysql{
public function connect() {
$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='test'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='root'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
$dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
return $dbh;
}
}
/**工厂类
* 如果已经使用的类内部发生改变,只需要在类工厂类里改变既可,
*/
class mysqlFactory{
//创建保存示例的静态成员变量
private static $obj;
//创建实例的静态方法
static public function factory($className){
self::$obj = new $className();
return self::$obj;
}
}
$db = mysqlFactory::factory('LinkPdo');
$con = $db->connect();
foreach ($con->query('SELECT * from test') as $row) {
print_r($row);
}
?>
设计模式学习之---工厂模式
最新推荐文章于 2024-06-06 08:30:00 发布