Не повредит ли это закону Деметры при использовании услуг / фабрик в модели?

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****() звонках. Можно ли обратиться к глобальному контейнеру и получить из него объекты? Или обратиться на завод? Разве это не нарушает закон Деметры? Он говорит, что мы не должны использовать объект извне

0 ответов

Другие вопросы по тегам