Не так новичок здесь, но все же делаю переход от структурированного программирования. Я пытаюсь примирить концепцию автономного объекта с программированием n-уровня. Кажется, у меня может быть один или другой, но не оба.
Скажите, пожалуйста, где я ошибаюсь здесь с n-уровневой архитектурой. Скажем, я хочу работать с группой людей. Я создаю класс Person в Entities Tier с FN, LN, BDay и т.д. Я буду использовать этот класс Person для представления одного человека во всех моих слоях -UI, Business и DataAccess. Но я вообще не могу использовать какие-либо полезные методы в "Человеке", потому что тогда я буду пересекать границы уровней.
Итак, я в конечном итоге создаю UiPersonClass, BusinessPersonClass и DataAccessPersonClass, каждый из которых имеет член класса Person. Затем я создаю конструктор для каждого класса уровня, который принимает параметр класса Person (исходящий из других слоев) и устанавливает его в this.Person. И я обновляю смежный слой PersonClass с this.Person как параметр. и т.д.
Это действительно неправильно, но как еще вы должны это делать?
Если бы я использовал только один слой, у меня мог бы быть класс "Person" с методами, которые заполняют элементы управления ui, обрабатывают информацию и сохраняют и извлекают данные из базы данных, все в одном месте, все в одном "объекте",.