4、简单工厂模式

来源:互联网 发布:开淘宝步骤 编辑:程序博客网 时间:2024/05/14 06:11
<?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++修改之后还要编译的)//在面向对象设计法则中,重要的开闭原则---对于修改是封闭的,对于扩展是开放的


0 0