Как я слышал, разница между описанными уровнями и уровнями состоит в том, что слои могут находиться на разных машинах, тогда как уровень может не быть (я также слышал термины, используемые в обратном порядке). Таким образом, n-слой подразумевает n-уровень. Например, сервер базы данных представляет собой отдельный слой, но просто имеет библиотеку бизнес-логики, которая не может быть запущена на машине отдельно от кода презентации, это просто разделение уровней. Если доступ к бизнес-логике осуществляется через сервисный уровень, который может быть размещен на другой машине, чем код представления, тогда он будет, как следует из названия, представлять отдельный слой.
N-level просто означал бы разделение кода на библиотеки, которые все еще могут потребоваться для работы на одной физической машине. N-слой будет представлять собой разделение кода на службы, которые, вероятно, будут работать на отдельных машинах, даже если бы их можно было запустить на одной машине.
Добавление
Сретение ярус содержит бы все, что связано с отображением информации для пользователя. Например, в MVC этот уровень подразделяется на контроллер, который извлекает информацию из уровня бизнес-логики (модели) и представления, которое отображает самую информацию. Уровень доступа к данным будет содержать код, используемый для извлечения информации из уровня данных.Уровни (ы) бизнес-логики будут содержать код, который извлекает информацию из уровня данных, обрабатывает эту информацию в объектной модели, которая учитывает бизнес-правила, и делает ее доступной для уровней выше нее, как уровень представления.
Причина, лежащая в основе уровней, заключается в том, что они обеспечивают степень отделения от уровня ниже. Например, предположим, что слой данных изменился или, более конкретно, продукт базы данных изменился. Это потребует обновления уровня данных, а не всей базы кода.
Использование определений, которые я предоставил, стандартный веб-сайт, основанный на базе данных, например, без вызовов услуг, действительно имеет только уровень представления и уровень данных (база данных), даже если он имеет несколько уровней представления, средние уровни и уровни данных. Если у вас есть служебные вызовы, в зависимости от того, где они вызваны, они будут представлять собой другой слой.
Какие типы кодирования мы помещаем в слой презентации, уровень приложения, уровень бизнес-логики, логику пользовательского интерфейса, уровень доступа к данным, объект доступа к данным ,? – Starx
@Starx: На этот вопрос может быть трудно ответить без очень хорошего понимания того, что именно вы выполняете, и чего может потребовать проект в более поздний срок. Кроме того, инструменты, которые вы используете, такие как ORM (если есть), сервер базы данных (реляционный, nosql, даже бренд) и т. Д. Будут влиять на то, где вы вкладываете вещи. Короткий ответ, хотя должен спросить себя: «Что делает этот код?» Специфический код пользовательского интерфейса (например, большинство javascript, html, css, wpf, flash и т. Д.) Принадлежит к уровню представления. Валидация данных, принудительное выполнение отношений и т. Д. Могут быть на уровне бизнес-логики или в другом месте. – NotMe