简单工厂

<?php

  //共同接口
  interface db{
    function conn();
  }


  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){
    if($type == 'mysql'){
      return new dbmysql();
    }elseif($type == 'sqlite'){
      return new dbsqlite();
    }
  }
}

//====客户端现在不知道服务器端到底有哪些雷鸣
//只知道Factory::createCB();
//允许传递 数据库名称

$mysql = Factory::createDB('mysql');
$mysql->conn();

$mysql = Factory::createDB('sqlite');
$mysql->conn();

//如果新增加oracle 类型 ,怎么办
//服务器增加怎么办(java c++得重新编译安装很麻烦)
//在面相对象设计原则中 重要的开闭原则 --- 对于修改封闭, 对于扩展添加时开放的
原文地址:https://www.cnblogs.com/long613/p/7681709.html