Моя проблема с шаблонами в том, что я разбираюсь в примерах через Интернет, но вряд ли могу представить себе применение к моей модели
Попытка приспособить шаблоны проектирования низкого уровня к концепции высокого уровня, как вы описали, просто не будет работать. Чтобы даже начать писать низкоуровневое программное обеспечение, вы должны устранить эти проблемы высокого уровня:
- вся модель вашего домена (не код)
- необходимые бизнес-сценарии
- ваша ИТ-топология для поддержки вашего приложения
- какие части программного обеспечения вам нужно написать
- как каждая часть программного обеспечения взаимодействует с другими частями
Как только это будет хорошо установлено, вы можете начать работать над такими вещами, как высокоуровневая архитектура для вашего отдельного приложения, соответствующие классы, которые потребуются для реализации ваших бизнес-требований и взаимодействий, и сотрудничество, которое эти классы будут иметь с каждым другой.
Шаблоны низкоуровневого проектирования действительно применимы к этой последней части - сотрудничество между отдельными классами или семействами классов.
Конечно, вы всегда можете попробовать подход «снизу вверх» и начать писать код до того, как ваш дизайн затвердеет. Но вы сможете применять шаблоны только тогда, когда вы уже знаете, какие классы вы будете использовать и как они должны взаимодействовать.
Другими словами, Мне нужно взглянуть на ваш код , чтобы сказать, какие шаблоны проектирования низкого уровня следует использовать.
Детали вашего описания показывают, что вы уже используете шаблоны более высокого уровня :
- Asp.net MVC 2
- Entity Framework
- Linq2SQL
- automapper
- ViewModels
Каждый из этих компонентов имеет множество шаблонов, естественно встроенных в них. Например, ORM, итераторы и MVC являются шаблонами проектирования.
это хорошая практика, чтобы писать предложения linq2sql в классах моделей
Если вы берете свои примеры только из обычной практики, то вы, вероятно, избежите этого. Похоже, людям почему-то нравятся простые старые объекты в многоуровневых приложениях.
Однако некоторые эксперты считают, что эта чрезвычайно распространенная практика использования объектов домена (модели) без кода является анти-шаблоном: см. http://en.wikipedia.org/wiki/Anemic_Domain_Model и http://www.martinfowler.com/bliki/AnemicDomainModel.html