Является ли передача вложенного объекта другому объекту анти-шаблоном?

В метадокументе PSR-11 говорится:

Как правило, если ваш объект вычисляет имя записи среди списка записей, которые могут варьироваться, ваш вариант использования, безусловно, является законным.

...но это относится только к услугам, верно? Итак, мой вопрос: в следующих трех примерах классов FooConfigвыступая в качестве сервисного локатора ?

      class NameConfig
{
    public function __construct(
        protected string $name
    ) { }

    public function getName(): string
    {
        return $this->name;
    }
}

class FooConfig
{
    public function __construct(
        protected NameConfig $nameConfig
    ) { }

    public function getNameConfig(): NameConfig {
        return $this->nameConfig;
    }
}

class Foo
{
    public function __construct(
        protected FooConfig $fooConfig
    ) {
        someFunction(
            $fooConfig->getNameConfig()->getName()
        );
    }
}

0 ответов

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