Почему мы не должны встраивать бизнес-логику в слой пользовательского интерфейса? - PullRequest
0 голосов
/ 20 апреля 2011

Хм, единственное, о чем я могу подумать, это то, что он дает меньше возможностей повторного использования. Труднее отличить код от логики пользовательского интерфейса.От архитектуры MVC, мы не должны использовать доменную логику в UI Layer?

Ответы [ 5 ]

2 голосов
/ 20 апреля 2011

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

1 голос
/ 20 апреля 2011

потому что ваш интерфейс может меняться со временем. но бизнес-логика остается прежней. Или, возможно, вы захотите изменить логику, но сохраняйте внешний вид.

Смешивание их вместе просто затрудняет применение изменений и подвержено ошибкам.

0 голосов
/ 20 апреля 2011

Предположим, что вы создали большое веб-приложение и поместили его в Просмотр всей бизнес-логики (BL), однажды ваш клиент сказал, что если нужно изменить приложение и перейти к приложению Desctop, будет сложно перенести весь код,если вы отделяете код BL от просмотра, он имеет следующие преимущества: 1. легко тестировать код 2. поддерживать 3. изменять 4. и масштабировать, и вы не нарушаете принцип разделения интересов

0 голосов
/ 20 апреля 2011

Помещение бизнес-логики на уровень пользовательского интерфейса усложняет понимание бизнес-логики и пользовательского интерфейса и ограничивает возможность самостоятельного изменения / повторного использования бизнес-логики и пользовательского интерфейса.На практике желание изменить / повторно использовать эти проблемы независимо друг от друга является обычным явлением, поскольку концептуально они даже не связаны тангенциально.

0 голосов
/ 20 апреля 2011

Разделение проблем имеет несколько важных преимуществ:

  1. Разные функции легче понять, если они физически разделены
  2. Проще заменить модули, которые слабо связаны с системой
  3. Легче изменить код, если вам нужно думать только об одном уровне абстракции за раз.

Номер 2 в данном случае особенно актуален: отделение бизнес-логики от пользовательского интерфейса означает, что вы можете иметь несколько пользовательских интерфейсов - веб, рабочий стол, мобильный телефон - для одного и того же сервера.

...