Как следует осуществлять связь n-уровня приложений между слоями? - PullRequest
4 голосов
/ 07 августа 2009

В последнее время я обсуждаю лучший способ управления связью в цепочке в n-уровневой архитектуре.

В настоящее время я использую методы создания и обработки исключений между слоями для ошибок и использования событий / делегатов для другого взаимодействия (для обновления индикаторов выполнения и тому подобного). Это лучший способ или есть другой метод, который я упустил из виду, который будет считаться лучшей практикой?

Ответы [ 3 ]

1 голос
/ 11 августа 2009

Исключения действительно являются хорошим способом обработки ошибок из более низких уровней.

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

1 голос
/ 24 июня 2010

Я попытался использовать шаблон адаптера. Основные объекты лежат в логическом слое и упакованы, используя составные объекты, чтобы могли работать уровни представления и доступа к данным. Большинство классов представления и уровня доступа к данным используют интерфейсы. Объекты-оболочки (составные) лежат на уровнях представления и доступа к данным и реализуют интерфейсы этих уровней.

В дополнение к составным объектам существуют объекты-контроллеры, которые могут извлекать данные из логических объектов и создавать новые объекты (т. Е. Список строк).

1 голос
/ 11 августа 2009

Я бы сказал, что вы на правильном пути в том, что касается обработки исключений - это реализация шаблона цепочки ответственности. Всегда хорошо бросить исключение в цепочку. Что касается другого (события / делегаты), я не совсем понял ваше заявление, поэтому не смог прокомментировать это.

...