<?php
//共同接口
interface db
{
function coon();
}
//服务器端开发(不知道将会被谁调用)
class dbmysql implements db
{
public function conn()
{
echo '连接上mysql';
}
}
class dbsqlite implements db
{
public function conn()
{
echo '连接上Sqlite';
}
}
class Factory
{
public static function createDB($type)
{
switch ($type) {
case 'mysql':
return new dbmysql();
break;
case 'dbsqlite':
return new dbsqlite();
break;
default:
throw new Exception("Error db type", 1);
break;
}
}
}
//客户端,现在客户端不知道服务器端有哪些类名了
//只知道对方开放了一个Factory::createDB的方法
//方法只允许传递数据库类型
$mysql = Factory::createDB('mysql');
$mysql->conn();
//如果新增oracle类型怎么办
//服务器端要修改Factory的内容(在java,c++修改之后还要编译的)
//在面向对象设计法则中,重要的开闭原则---对于修改是封闭的,对于扩展是开放的
4、简单工厂模式
最新推荐文章于 2024-09-06 15:24:58 发布