Какие дополнительные уровни могут быть в n-слойной архитектуре для приложения?

Я изучаю принципы архитектуры программного обеспечения. Я понял, что это трехуровневая архитектура (содержит презентацию-бизнес-доступ к данным) .
но у кого-то есть идея или дополнительные уровни для этого, например, кто-то делает это с помощью дополнительных уровней, таких как уровень «Сервис», уровень «Инфраструктура» или другие уровни и т. д. есть ли дополнительные слои для этого?
Я не понимаю, как это делать. пожалуйста, помогите мне ...

Пройдите по этой ссылке codeproject.com/Articles/430014/N-Tier-Architecture-and-Tips

Rakesh Kumar 10.08.2018 11:48

спасибо ..... где эта статья указывает на мой вопрос?

PProg 10.08.2018 12:23

например, я видел много реализаций многоуровневой архитектуры. уровень обслуживания или уровень инфраструктуры. Даже существует отдельный уровень представления и уровень реального пользовательского интерфейса. иногда существуют уровни репозитория или домена. какой тип n-слоя лучше всего реализовать в реальном мире?

PProg 10.08.2018 12:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
180
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

C# ничем не отличается от других (императивных) языков программирования. Ваша точная архитектура часто определяется используемым фреймворком. Если вы используете C#, это скорее всего какой-то вкус ASP.NET MVC. Это хороший обзор.

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

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

Общая многоуровневая архитектура:

  • Основной слой
  • Инфраструктура
  • Презентация

Если еще больше разбить эти 3 слоя, они могут иметь свои собственные зернистые слои.

Основной слой

  • Модели предметной области
  • Перечисления

Инфраструктура

  • Репозитории
  • Объектные модели передачи данных
  • Услуги
  • Единица работы

Презентация

  • Проект MVC
  • Веб-API

Думаю, чтобы ответить на ваш вопрос, я мог бы добавить слой между уровнем инфраструктуры и уровнем представления и получить уровень Тестирование. Просто имейте в виду, что такое многоуровневое построение архитектуры приложения с использованием файловой структуры действительно полезно только в том случае, если вы следуете принципам SOC и SOLID в своем коде.

Другие вопросы по теме