我有一个执行数据库操作并返回结果的类(array,true,false)。我有另一个类,通过在其构造函数中使用此类来创建JSON字符串。 我们可以说这个类是适配器吗?或者只是包装或...
Class Db
{
public function getRows($params)
{
//...
}
}
Class DbAdapter
{
private $_dbh;
public function __construct($dbh)
{
$this->_dbh = $dbh;
}
public function getJson()
{
return '{"key": "foo", "key2": ' . json_encode($this->_dbh->getRows($params)) . '}';
}
}
由于
答案 0 :(得分:1)
我说更多的是装饰师... http://en.wikipedia.org/wiki/Decorator_pattern
答案 1 :(得分:0)
来自:http://www.fluffycat.com/PHP-Design-Patterns/Adapter/
如果您想使用不具备所需方法的类,并且无法更改orignal类,则适配器会很有用。适配器可以采用您可以在原始类中访问的方法,并使它们适应您需要的方法。
如果您计划添加方法以补充其他类,我会说您的代码有资格作为适配器。
答案 2 :(得分:0)
我认为你不能选择一种模式并说这是在这里使用的模式。这是我在你的例子中看到的我的小模式列表。随意评论。
Delegation因为DBAdapter
类将实际行的任务委托给DB类。
Decorator因为DBAdapter
类使用其他功能来装饰DB类 - 即以JSON方式吐出输出。
Adapter/Wrapper如果您认为它允许其他客户端访问仅理解JSON或XML或其他格式的数据库行。
但如果我们必须选择一个,我会说适配器。它以PHP数据结构的形式获取数据并将其转换为JSON表示。