Я вижу два основных вида проектных работ.
Существует разложение в элементах первичной системы. Итак, у вас уже есть представление об отделении частей представления от остальной части вашей системы. Вероятно, у вас тоже есть бизнес-логика и постоянство. Первый важный вопрос, сколько Business Logic у вас действительно есть. Некоторые системы - это немного больше, чем тонкая кожа перед простой базой данных, вряд ли любая истинная бизнес-логика.У других есть очень важные части бизнес-логики, которые в некоторой степени независимы.
Если у вас есть основные полу-независимые элементы, они могут лучше общаться через события и очереди сообщений. Поэтому укажите, есть ли у вас фрагменты, которые нуждаются в таких развязанных отношениях, и это приводит к идентификации событий и полезных данных этих событий. Вот где Фаулер ссылается в другом ответе, становится актуальным.
Далее сверлить бизнес-части логики. Интерфейсы и абстрактные классы и т. Д. - это методы структурирования реализации сложности. Отделите свой код, чтобы детали были скрыты, а гибкость включена. Я рассматриваю это как упражнение проектирования OO, есть много книг об этом, например head first.
+1 для приятного и краткого ответа на объемную тему! Хорошая справочная книга тоже помогла мне во многих случаях. – rob
Утонченный и понятный. Спасибо, что упомянул книгу. – NLV
+1 для отличных советов, с двумя оговорками: 1) легко переусердствовать с отдельными сборками (см. Превосходные статьи Патрика Смаккии) (http://www.theserverside.net/tt/articles/showarticle.tss?id= ControllingDependencies) и 2) очереди сообщений недоиспользуются и являются удивительными. :) –