Являются ли N-слойная и N-уровневая архитектура одинаковыми?
Может кто-нибудь сказать мне, в чем разница между N-Layer и N-Tier архитектуры. Я знаю, что 3-уровневая архитектура имеет 3 уровня: UI, Business Logic Layer(BLL) и Data Logic Layer(Dll)
Но теперь мой вопрос - что такое N-Tier и N-Layer и в чем разница между ними?
Кроме того, как они взаимодействуют с одним уровнем к другому в отношении C#?
3 ответа
Это не то же самое. Слой - это концепция программного обеспечения architech - как вы организуете свой код. Ярус - это концепция аппаратного архитектора - на какой машине выполняется часть вашего кода.
Это про абстракцию.
Прочитайте статью в Википедии о многоуровневой архитектуре, и она расскажет вам, что действительно слой против уровня связан с программным обеспечением против аппаратного обеспечения. Но это не следует строго, как показывает модель уровня OSI 7 (это не все программное обеспечение, но они все равно называют их всеми слоями). И действительно, это не главное. Абстракция это точка.
Будь то уровень или уровень, каждый уровень фокусируется на одной четкой ответственности и соединяется с соседними уровнями как можно меньше и проще. Небольшое и простое соединение (слабая связь) позволяет заменять альтернативные реализации уровня, не мешая другим. Этот трюк работает в аппаратном обеспечении так же, как и в программном.
Итак, как взаимодействовать с одним слоем к другому в C#? Это действительно зависит от того, что вы делаете. Весь ваш код C# может быть логическим уровнем, координирующим взаимодействие между уровнем представления html и уровнем базы данных SQL. Или это может быть много слоев в игре с дизайном контроллера вида модели. В этом случае все слои находятся в C#. Или это могут быть три класса, которые делают три разные вещи. Но только если они подключены правильно. Что делает их "ярусами" или "слоями", так это то, что уровень 1 должен пройти уровень 2, чтобы перейти на уровень 3. 1 не говорит с 3, а 3 не говорит с 1.
Но вещь, которая действительно заставляет это работать, является абстракцией. Хороший уровень базы данных упрощает обновление и запросы к базе данных, скрывая ненужные детали от логического уровня. Удаление этих деталей облегчает написание и чтение логического кода.
По той же причине мы надеваем капюшоны на автомобили. Вы можете снять капот, сесть на блок двигателя, заклинить шток в блоке реечной передачи, схватить трос дроссельной заслонки и вести машину. Поскольку капот больше не мешает, теперь вы можете делать удивительные вещи, например, менять масло со скоростью 60 миль в час. Тем не менее, я думаю, вам будет удобнее ехать с капотом и за рулем, когда все эти детали двигателя удалены.
Слой определяет логическое разделение. Если у вас есть 3 слоя, это означает, что у вас есть 3 отдельные части системы, каждый из которых отвечает за отдельную вещь.
Уровень определяет физическое разделение между слоями. Это не означает, что это должно находиться в отдельных машинах, но это означает, что части являются отдельными и могут быть установлены и использованы самостоятельно.