php的工廠模式

特色 :將調用者和建立者分離,調用者直接向工廠類請求獲取調用對象,減小代碼耦合,提升系統的維護性和擴展性。php

<?php
// **** 共同接口 **** //
interface DB {
    function conn();
}

interface factory {
    function createDB();
}

// **** 服務端開發 **** //
class dbMysql implements DB {
    public function conn() {
        echo '鏈接上了 mysql 數據庫!';
    }
}

class mysqlFactory implements factory {
    public function createDB() {
        return new dbMysql();
    }
}

class dbSqlite implements DB {
    public function conn() {
        echo '鏈接上了 sqlite 數據庫!';
    }
}

class sqliteFactory implements factory {
    public function createDB() {
        return new dbSqlite();
    }
}

// 這是開發中後來增長的 oracle 數據庫;
// 不須要修改上面原來的代碼;
// 這就是程序的開閉原則:修改關閉,增長開放。
class dbOracle implements DB {
    public function conn() {
        echo '鏈接上了 oracle 數據庫!';
    }
}

class oracleFactory implements factory {
    public function createDB() {
        return new dbOracle();
    }
}

// **** 客戶端調用 **** //
$factory = new mysqlFactory();
$db = $factory->createDB();
$db->conn();

echo '<br>';

$factory = new sqliteFactory();
$db = $factory->createDB();
$db->conn();

echo '<br>';
// 這是開發中後來增長的 oracle 數據庫鏈接
$factory = new oracleFactory();
$db = $factory->createDB();
$db->conn();
相關文章
相關標籤/搜索