我仍然无法分辨容器,控制器或工厂之间的区别。例如,下面的代码应该被视为容器,控制器还是工厂?
在这种情况下,如果它是一个容器应该怎么样?
namespace ioc
{
class LoggerContainer
{
use \Snippets;
/*
* Set props.
*/
protected $Database;
public $Logger;
/**
* Construct data.
*/
public function __construct($Database)
{
// Set DI.
$this->Database = $Database;
// Run private method.
$this->getLogger();
}
/**
* Set a new class (instantiate the class) as the return result.
*/
private function getLogger()
{
$signature = AUTHENTICATED_USER_SIGNATURE;
$this->Logger = new \core\model\Logger($this->Database);
if($_REQUEST['url'] === 'backoffice')
{
return $this->Logger->setLogger($signature)->addCategory()->addSomething();
}
else
{
return $this->Logger->setLogger($signature)->removeSomething();
}
}
}
}
答案 0 :(得分:1)
这是一个容器,因为它是一个保存另一个被访问对象的对象,在这种情况下是一个Logger。
控制器是一个通常引用MVC
的C的术语,它控制着模型和视图
虽然工厂方法引用了返回接口/抽象类的正确特化的例程
请注意,这三个术语指的是非常不同的东西