我正在编写一个PDO包装作为一个学习项目的一点,我试图结合使用依赖注入。我目前的设置有一个工厂,将设置依赖关系。所以,例如,我将有一个表单类,它传递几个对象来输出HTML属性等。PDO包装类 - 如果连接检查
我想保留它,但在我的工厂类中,我只想使用一个每个对象的实例,而不是每次都创建一个新对象。一个例子可能会解释这更好:
class Factory {
public static function Form() {
$html = new Html;
$form = new Form;
$form->html = $html;
return $form;
}
}
而我的HTML类:
class HTML {
// Outputs attributes in the given array
public function attributes($attributes = array()) {
// Create string of HTML attributes
foreach($attributes as $key => $attribute):
$tags .= $key . '=' . $attribute . ' ';
endforeach;
return $tags;
}
}
所以基本上,我想在工厂一旦创建HTML对象,然后传递通过对表格的方法,它将创建表单并允许我访问HTML方法。
我假设我将不得不在我的工厂中设置一个构造函数来创建HTML对象?我从中看到的问题是,每次运行Factory :: Form时,都会创建一个新的HTML对象。有没有简单的方法呢?即使用Factory时,检查是否创建了HTML对象,如果是,则使用当前的对象。
这可能很简单,但任何帮助将是伟大的。
我认为你的编辑绝对是我在这之后。我已经完成了,但是把if语句放到另一个方法中 - 然后我只是在Form方法中调用它。完全按照预期工作。感谢您的快速回复! – 0Neji 2013-05-14 10:27:05