вопрос о oo - смешивание логики контроллера и бизнес-логики

<form onreturn="someJavascriptFunction()" action="" method="">

создание функции js, способной открыть эту страницу предварительного просмотра

6
задан alchemical 10 June 2009 в 23:27
поделиться

4 ответа

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

3
ответ дан 9 December 2019 в 20:48
поделиться

То, что вы делаете, является формой архитектуры «толстого контроллера». В наши дни разработка программного обеспечения имеет тенденцию к созданию тонких контроллеров.

ОО-дизайн - это все о разделении. Если вы усвоили только одну вещь об объектно-ориентированном программировании, пусть будет так.

Посмотрите « Domain-Driven Design Quickly ». Эта бесплатная электронная книга представляет собой сжатое введение в концепции, изложенные в важной книге Эрика Эванса «Домен-ориентированный дизайн»

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

7
ответ дан 9 December 2019 в 20:48
поделиться

Нет, я не добавляю бизнес-логику в контроллеры. Я добавляю промежуточный сервисный уровень, который внедряется в контроллеры. Позвольте сервису делать свою работу. Контроллеры предназначены для маршрутизации запросов и маршалинга ответов.

Размещение логики на чистом уровне обслуживания является «сервис-ориентированным», даже если вы этого не сделаете. t с помощью веб-сервисов или WSDL. Он имеет дополнительное преимущество - он все еще работает, если вы решите изменить технологии контроллера / представления.

1
ответ дан 9 December 2019 в 20:48
поделиться

Ответ на ваш вопрос о дизайне может быть следующим: как бы вы спроектировали свое приложение, если бы вам также пришлось предоставить для него веб-клиент.

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

1
ответ дан 9 December 2019 в 20:48
поделиться
Другие вопросы по тегам:

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