@evomed

Можно ли обращаться к фасаду из класса, который этот фасад вызывает?

Есть фасад Payments. Он связан с реализацией PaymentManage который вызывает различные классы платежей. Например CreatePayment и CheckStatus. Эти классы связаны с абстрактным PaymentService и у них внутренние связи налажены через parent. Но есть еще PriceConvert, который также вызывается в PaymentManage. И вдруг в CheckStatus мне понадобился PriceConvert. Я могу вызывать его через фасад Payments::priceConvert? Или мне нужно создать объект PriceConvert и вызвать нужный метод? Просто с одной стороны фасад Payments лежит ниже чем эти классы - это просто точка доступа для контроллеров итд. И я не могу обращаться с высокого уровня на низкий. С другой стороны создавать объекты, когда есть фасад тоже не хочется. По эстетическим соображениям и пока не понимаю что может произойти т.к. все равно юзаю фасад и если что подменяться будет как раз реализация, а не фасад. Как будет правильно?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
Весь вопрос звучит как какой-то оверинжиниринг.
0. Без диаграмм вообще поток мыслей сложно понять.
1. Фасад - это не способ легализовать божественный класс.
2. Циклические зависимости - это не всегда смертельно плохо, но всегда очень подозрительно.
3. Не нужно накидывать все паттерны, какие ты знаешь, если только что прочитал какую-то умную книжку или статью. Иногда лучше всё-таки сделать по принципу KISS и YAGNI.

Или мне нужно создать объект PriceConvert и вызвать нужный метод?

Зачем на каждую мелкую операцию делать отдельный класс и создавать постоянно новые объекты?

Просто с одной стороны фасад Payments лежит ниже чем эти классы - это просто точка доступа для контроллеров итд.

Фасад же типа по определению должен быть выше всех, как наиболее высокий уровень абстракции. С чего это вдруг он оказался ниже всех? И что у тебя подразумевается под контроллерами? Обычно контроллерами в вебе называют обработчики http-запросов. Тогда контроллеры должны зависеть от фасада, а не наоборот.

и у них внутренние связи налажены через parent
.
Что это вообще значит?

Payments::priceConvert

Почему вообще платежи отвечают за конвертацию курсов валют? Или что делает priceConvert?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы