2.5. 适配器模式(Adapter)
uml

实现类
- 他们需要实现什么接口?
SqlAdapterInterface - 实现接口的具体类
SqlServerMysql - 适配器调用类
SqlAdapter
代码实现
<?php
//数据库适配器 必须实现这些接口
interface SqlAdapterInterface
{
// 连接
public function connection();
}
class Mysql implements SqlAdapterInterface
{
public function connection()
{
echo 'mysql连接成功'.PHP_EOL;
}
}
class SqlServer implements SqlAdapterInterface
{
public function connection()
{
echo 'sqlServer连接成功'.PHP_EOL;
}
}
//执行者
class SqlAdapter
{
protected $server;
public function __construct(SqlAdapterInterface $server)
{
$this->server = $server;
}
public function init()
{
$this->server->connection();
}
}
$mysqlAdapter = (new SqlAdapter(
new Mysql()
));
$sqlServerAdapter = (new SqlAdapter(
new SqlServer()
));
$mysqlAdapter->init();
$sqlServerAdapter->init();
场景
我知道 mysql 可以用 init() 创建连接,
我想用 sqlserver了,请问 sqlserver 要怎么创建连接啊?
哦,还是 init() 啊。
(后续这个类可能会变复杂,有delete update等等命令)
php设计模式学习
关于 LearnKu
推荐文章: