{"id":369,"title":"php\u8bbe\u8ba1\u6a21\u5f0f-\u5de5\u5382\u6a21\u5f0f","good":0,"bad":0,"hit":1951,"created_at":"2018-07-17 00:19:44","content":"
<?php\n\/**\n * \u8bbe\u8ba1\u6a21\u5f0f-\u5de5\u5382\u6a21\u5f0f\n *\/\n\nclass factory{\n\n    public function create($type){\n        switch($type){\n            case 'wechat':\n                return new wechat();\n            break;\n            case 'alipay':\n                return new alipay();\n            break;\n        }\n    }\n}\n\nclass wechat{\n    public function __construct()\n    {\n        echo '\u7528\u5fae\u4fe1\u652f\u4ed8<br\/>';\n    }\n}\nclass alipay{\n    public function __construct()\n    {\n        echo '\u7528\u652f\u4ed8\u5b9d\u652f\u4ed8';\n    }\n}\n$factory = new factory();\n$factory->create('wechat');\n$factory->create('alipay');<\/pre>

<\/p>

<\/p>

\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>

\u7528\u5fae\u4fe1\u652f\u4ed8<\/span>\u7528\u652f\u4ed8\u5b9d\u652f\u4ed8<\/span><\/p>

<\/span><\/p>

\u4e0a\u9762\u662f\u7b80\u5355\u7684\u5de5\u5382\u6a21\u5f0f\uff0c\u5982\u679c\u6dfb\u52a0\u4e00\u79cd\u652f\u4ed8\u65b9\u5f0f\u53c8\u5f97\u6539\u539f\u6765\u7684\u4ee3\u7801\uff0c\u7834\u574f\u4e86\u8bbe\u8ba1\u6a21\u5f0f\u7684\u5f00\u95ed\u539f\u5219\uff1a\u5173\u95ed\u4fee\u6539\uff0c\u5f00\u653e\u6269\u5c55<\/span><\/span><\/strong><\/p>

\u4e0b\u9762\u8fdb\u884c\u6539\u8fdb\uff0c\u73b0\u5b9e\u4e2d\u53ef\u4ee5\u5c06\u4e0d\u540c\u7c7b\u578b\u7684\u7c7b\u653e\u5230\u4e0d\u540c\u76ee\u5f55\uff0c\u8fd9\u91cc\u65b9\u4fbf\u67e5\u770b\u653e\u5230\u4e00\u4e2a\u6587\u4ef6\u4e2d\u4e86\uff1a<\/span><\/strong><\/p>

\"QQ\u56fe\u724720230118173030.png\"\/<\/span><\/strong><\/p>

<\/span><\/p>

<?php<\/p>

\/**<\/p>

 * php-\u5de5\u5382\u6a21\u5f0f<\/p>

 *\/<\/p>

<\/p>

\/***********************\u63a5\u53e3\uff0c\u76ee\u5f55\/interfaces********************\/<\/p>

interface db<\/p>

{<\/p>

    function conn();<\/p>

}<\/p>

<\/p>

interface factory<\/p>

{<\/p>

    function createDB();<\/p>

}<\/p>

<\/p>

\/***********************sevice,\u76ee\u5f55\/service********************\/<\/p>

class dbMysql implements db<\/p>

{<\/p>

    public function conn()<\/p>

    {<\/p>

        echo "\u8fde\u63a5mysql<br\/>";<\/p>

    }<\/p>

}<\/p>

<\/p>

class dbSqlite implements db<\/p>

{<\/p>

    public function conn()<\/p>

    {<\/p>

        echo "\u8fde\u63a5sqlite<br\/>";<\/p>

    }<\/p>

}<\/p>

<\/p>

\/***********************factory,\u76ee\u5f55\/factory********************\/<\/p>

class mysqlFactory implements factory<\/p>

{<\/p>

    public function createDB()<\/p>

    {<\/p>

        return new dbMysql();<\/p>

    }<\/p>

}<\/p>

<\/p>

class dbSqliteFactory implements factory<\/p>

{<\/p>

    public function createDB()<\/p>

    {<\/p>

        return new dbSqlite();<\/p>

    }<\/p>

}<\/p>

<\/p>

\/***********************\u5ba2\u6237\u7aef\u8c03\u7528,\u76ee\u5f55\/index.php********************\/<\/p>

$factory = new mysqlFactory();<\/p>

$db = $factory->createDB();<\/p>

$db->conn();<\/p>

$factory = new dbSqliteFactory();<\/p>

$db = $factory->createDB();<\/p>

$db->conn();<\/p>

<\/span><\/p>"}