Не повредит ли это закону Деметры при использовании услуг / фабрик в модели?
class ForumThread
{
/**
* @return bool
*/
public function findBadLanguage ($inWhat)
{
return (bool)rand(0,1);
}
/**
* @return
*/
public function add ($threadName)
{
if (!$this->findBadLanguage ($threadName))
{
INSERT INTO
}
}
}
class ForumPost
{
/**
* @return
*/
public function post ($toThreadId, $comment)
{
// im talking about this:
Services::getForumThread()->findBadLanguage($comment);
}
}
я знаю findBadLanguage()
должен быть в другом классе, но давайте предположим, что все в порядке. Давайте сосредоточимся на Services::get****() звонках. Можно ли обратиться к глобальному контейнеру и получить из него объекты? Или обратиться на завод? Разве это не нарушает закон Деметры? Он говорит, что мы не должны использовать объект извне