关键:通过构造器注入依赖的对象。
假设有这么个实例,Article实现必要的领域,数据持久化交给ArticleDAO()去做
class Article
{
private $dao;
public function __constract($dao = null)
{
//相当于外面大类不传参的时候默认使用ArticleDAO()的意思
if($dao === null){
$dao = new ArticleDAO();
}
$this->setDao($dao);
}
public function setDao($dao)
{
$this->dao = $dao;
}
public function save()
{
$this->dao->save();
}
}
想换一个不同的数据持久化的类时就方便了
<?php
$article = new Article(new MockArticleDAO());
$article->save();
?>