Где поместить бизнес-логику посредника в бэкэнд

Предположим, у вас есть GravityLogic и WeakForceLogic класс. Сами по себе оба предоставляют тонны бизнес-логики. Теперь вы хотите создать взаимодействия между теми, которые дают совершенно другой набор результатов. Вы бы предпочли создать класс GravityWeakForceInteractionLogic, если это сгенерирует много новых алгоритмов, или поместите новую логику в другое место (например, классы Helper)

Я очень стараюсь организовать такой посреднический код бизнес-логики на стороне сервера. Гравитация и логика слабой силы являются лишь примерами. Чего я пытаюсь избежать, так это «связывая» бизнес-логику между объектами бэкэнда на верхних уровнях. Я также хочу предоставить более надежный API для нашего интерфейса. Я просто постоянно задаюсь вопросом, куда поместить эти алгоритмы.

Этот вопрос для любого объектно-ориентированного языка. Я знаю, что каждый случай может требовать своего места, но сейчас давайте предположим, что эта логика связывания сложна и раздувает исходные классы, которые она пытается подключить, и извлекает значимую информацию.

1 голос | спросил Kévin Isabelle 7 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 07 Sep 2018 20:03:47 +0300 2018, 20:03:47

1 ответ


2

Поскольку наша проблемная область кажется физикой, я собираюсь сделать несколько предположений в своем ответе:

  1. GravityLogic содержит методы, которые содержат математические алгоритмы для решения гравитационных задач

  2. WeakForceLogic - это класс с алгоритмами для Weak Force из физики элементарных частиц.

Понимание проблемной области - вот ключ.

Если логика требует гравитации и слабой силы, куда она идет?

Как гравитация и слабая сила связаны друг с другом в физике? Это вопрос, чтобы ответить. Итак, места для размещения этой логики координации:

  • Взаимодействие между ними может иметь термин или идею в физике, которая становится новым классом, который выполняет эти координирующие вычисления.

  • Предоставьте больше методов в GravityLogic или WeakForceLogic, которые принимают другой класс в качестве аргумента.

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

ответил Greg Burghardt 7 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 07 Sep 2018 21:12:18 +0300 2018, 21:12:18

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132