?我自己參照網上寫了一個Mysql的適配器, 請大神幫看看是不是適配器模式的...<?phpclass MysqlAdapter{ ? //適配器 ? ?protected $host; ? ?protected $uname; ? ?protected $passwd; ? ?protected $dbname; ? ?public function __construct($host,$uname, $passwd, $dbname) ? ?{ ? ? ? ?$this->host = $host; ? ? ? ?$this->uname=$uname; ? ? ? ?$this->passwd = $passwd; ? ? ? $this->dbname=$dbname; ? ?} ? ?public function Adapt($adaptee){ ? ? ? ?return new $adaptee($this->host,$this->uname, $this->passwd, $this->dbname); ? ?}}class MysqliAdaptee { ? //適配模塊 ? ?protected $link; ? ?function __construct($host, $username, $password, $databaseName) ? ?{ ? ? ? ?$conn = mysqli_connect($host, $username, $password, $databaseName); ? ? ? ?$this->link = $conn; ? ? ? ?if($this->link) echo "Login success!"; ? ? ? ?else echo "Login failed!"; ? ?} ? ?function query($sql) ? ?{ ? ? ? ?return mysqli_query($this->link, $sql); ? ?} ? ?function close() ? ?{ ? ? ? ?mysqli_close($this->link); ? ?}}$MysqlAdapter = new MysqlAdapter("localhost","root","123456","test"); ?//創建Mysql適配器$link = $MysqlAdapter->Adapt(MysqliAdaptee::class); ? //選擇適配模塊$result = $link->query("show databases");$data = mysqli_fetch_all($result);var_dump($data);$link->close();
在大話PHP設計模式中,這第六章所講的真的是適配器嗎?
Darkspirit暗靈
2017-08-04 13:24:21