{"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>
<\/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>"}