1
我有一個類是一堆模塊對象的容器。眼下容器發生在文件路徑的數組,然後包括文件和實例化模塊如何重構此構造函數以使其可測試?
class module {
function execute();
}
class container {
public $Name;
public $Modules;
public __construct($Obj){
$this->Name = $Obj->Name;
foreach($this->Modules as $M){
include_once($M);
$className = $this->GetClassName($M);
$this->Modules[] = new $className;
}
}
public execute(){
foreach($this->Modules as $M){
$M->execute();
}
}
}
我不能確定什麼是最好的方式來重構這個,使其容易測試的。
class containerFactory{
public function createContainer($Obj){
$C = new Container($Obj);
$C->InstiateModules();
return $C;
}
}
class container{
public function InstiateModules(){
$tmp = array();
foreach($this->Modules as $M){
include_once($M);
$className = $this->GetClassName($M);
`enter code here`$this->Modules[] = new $className;
}
$this->Modules = $tmp;
}
public function __construct($Obj){
$this->Name = $Obj->Name;
$this->Modules = $Obj->Modules;
}
}
有關我還應該做什麼的任何建議? 感謝
我看不出究竟是不是即使在第一個版本tesable ... BWT,你的構造函數使用未初始化$這個 - >模塊,怎麼回事? – 2009-07-04 17:54:31