Я вижу две основные «школы мыслей», когда дело доходит до создания более масштабных корпоративных приложений на .NET (Winforms, WPF, ASP.NET).Образцовый шаблон против «умных» бизнес-объектов
Некоторые люди используют «шаблон репозитория», который использует репозиторий, который знает, как извлекать, вставлять, обновлять и удалять объекты. Эти объекты довольно «тупые» в том смысле, что они не обязательно содержат много логики - например, они являются более или менее объектами передачи данных.
В другом лагере используются то, что я называю «умными» бизнес-объектами, которые знают, как загружать себя, и обычно они имеют метод Save(), возможно, Update() или даже Delete(). Здесь вам действительно не нужен репозиторий - сами объекты знают, как загружать и спасать себя.
Большой вопрос:: который вы используете или предпочитаете? И почему?
Используете ли вы один и тот же подход во всех своих приложениях или у вас есть какие-либо конкретные критерии, когда нужно выбирать один подход по сравнению с другим? Если да - каковы эти критерии?
Я не пытаюсь начать здесь пламенную войну - просто пытаюсь выяснить, что все думают об этом и каково ваше мнение, и почему вы используете один (или оба) шаблона над другим.
Спасибо за любой конструктивный ввод!
В этом случае один общий репозиторий должен знать, как загружать все типы объектов. –
, и поскольку он является общим, он может обрабатывать загрузку всех типов объектов. Также упрощает модульное тестирование –
Мне также нравится стиль репозитория, потому что объекты передачи данных более гибкие. Вы можете использовать их везде, не зависимо от фреймворков, слоев и т. Д. Они представляют собой просто концепцию, модель. Если вам нужен мост между моделью и BD, вы создаете слой сохранения. Вам нужен мост между моделью и пользователем, с которым вы создаете пользовательский интерфейс. Вы хотите вычислить вещи, чтобы реализовать варианты использования, вы строите бизнес-логику. Все относится к просто объектам модели, которые не привязаны ни к чему, кроме самой бизнес-концепции. – helios