왜 3 계층 모델의 두 번째 계층이 "비즈니스"계층으로 알려져 있습니까?비즈니스 계층 3
답변
응용 프로그램의 성격에 따라 - 자선, 온라인 retailler 및 부동산 중개인이 모두 동일한 웹 서버 및 데이터베이스를 사용할 수 있기 때문에 - 중간에있는 비트는 매우 다릅니다.
나는 그들이 같은 데이터베이스를 사용한다고 생각하지 않는다. 그것들은 다른 주제이다. 어쩌면 당신은 동일한 db 서버를 의미 할 수도 있습니다. – JonH
비즈니스 로직이 있기 때문에. 즉, 비즈니스 시나리오에 특정한 논리입니다.
다른 계층에는 이러한 논리가 없어야합니다. 프론트 엔드는 데이터를 표시하고 수집해야하며 데이터베이스는 데이터를 저장해야하며 DAO는 데이터를 검색하고 저장해야합니다.
비즈니스 계층은 UI 및 DB에서 입력으로 들어오는 것을 기반으로 논리를 수행해야합니다.
모든 소프트웨어가 비즈니스를 지원하기 때문에 '비즈니스'입니다.
+1 - BL에 대한 좋은 설명. – JonH
여기 내 2 센트입니다.
왜? 그것이 그것이 인 방법으로 N-Tier 패러다임에으로 정의되어 있기 때문입니다. 우리는 무엇인가가 그것으로 정의 될 때 그런 이름으로 불리는 이유를 묻지 않습니다.
N-Tier 패러다임은 오래된 것입니다. 10 세 이상입니다. N-Tiere 디자인은 뷰 로직과 비즈니스 로직을 분리하는 데 도움이되었지만 이제는 유행이 아닙니다.
오늘 Domain Driven Design 일명 DDD는 도메인 로직을 살펴보고 그에 대한 시스템을 구축하는 새로운 패러다임입니다. 도메인 논리는 데이터베이스의 모든 곳, UI 및 중간 계층에 있습니다. 그래서 당신의 테이블은 Order
, Topping
등으로 불릴 것입니다. 피자 가게를위한 소프트웨어를 만들고 있다면 은행용 소프트웨어를 개발할 때 Account
, Transaction
이 될 것입니다. 비즈니스 로직은 UI 또는 데이터베이스뿐만 아니라 중간 계층에도 도처에 있습니다 ().
는 이제 계층 구조는 여전히 좋은 아키텍처 접근 방식으로 인정하는 동안 (인 중간 계층을 가지고 은 더이상 "비즈니스 계층"이라고)는 N 계층이 없습니다.
나는 꽤 동의하지 않는다. 첫째, DDD는 전혀 새로운 것이 아닙니다. 그런 다음 DDD를 사용하면 도메인 논리는 도메인 객체에만 있습니다. UI가 아니라 데이터베이스에 있습니다. 도메인 개체는 '비즈니스 계층'을 나타냅니다. – Bozho
도메인 개체는 개체입니다. 그들은 비즈니스 계층을 대표하지 않습니다. 사실 그들은 데이터 계층에 있습니다. – Aliostad
예, 엔티티입니다. 하지만 그들은 DAO 계층이 아닙니다. 데이터베이스 작업 (저장소)을 관리하는 별도의 계층이 있습니다. 그리고 씬 서비스 레이어는 도메인 개체를 조정합니다. 그럼에도 불구하고 비즈니스 로직은 당신이 말하는 것처럼 흩어지지 않습니다. – Bozho
OO 애플리케이션에서 저는 비즈니스 레이어를 비즈니스 규칙, 프로세스 또는 객체에 적용되는 워크 플로우라고 생각합니다. 그러나 많은 경우에이 객체가 POCO (C#의 Plain Old C# Objects, Java의 POJO 등)가 될 뿐이라는 것을 알았습니다. 문제는 객체의 동작이 객체에서 분리되어 임의의 "비즈니스 로직"클래스로 이동한다는 것입니다.
제 개인적인 생각은 "비즈니스 계층"이 개체에 작용해야하지만 개체의 동작을 개체로 바꾸지 않아야한다는 것입니다. 또한 상속 및 다형성을 사용하여 Closed Principle과 같은 다른 사례를 더 잘 구현할 수 있습니다.
"OCP" Area 클래스가 "비즈니스 계층"이지만 다양한 Shape 객체에는 각 유형의 모양에 대한 비헤이비어 논리가 포함되어 있습니다. 지역 코드가 거의 바뀌지 않으면이 방법을 사용하십시오.
- 1. 3 계층 아키텍처에서 비즈니스 계층 사용
- 2. 3 계층 아키텍처에서 비즈니스 로직 구현
- 3. 비즈니스 클래스를 3 계층 구조의 비즈니스 클래스에 삽입
- 4. 비즈니스 계층 디자인
- 5. MVC - 3 계층 모델입니까?
- 6. n 계층 비즈니스/서비스 계층 설계
- 7. 소프트웨어 디자인 - 3 계층 아키텍처
- 8. 데이터 액세스 계층 및 비즈니스 개체
- 9. 정적 비즈니스 계층 및 확장 방법
- 10. 2 및 3 계층 아키텍처의 하이브리드가 권장됩니다.
- 11. 비즈니스 계층/코드 숨김 성능 질문
- 12. .Net 4.0 비즈니스 계층 "기술"이 있습니까?
- 13. LINQ-To-SQL 비즈니스 계층 개체 DataContext
- 14. ASP.NET - 프레젠테이션 계층에 비즈니스 계층 오류 표시
- 15. 비즈니스 로직 계층 메서드에서 ListView 업데이트
- 16. WCF 서비스에서 비즈니스 논리 계층 노출
- 17. 디자인 질문 - 비즈니스 계층 방법은 얼마나되어야합니까?
- 18. C# DAL 클래스 및 비즈니스 계층 클래스
- 19. 비즈니스 계층 디자인 딜레마 : 메모리 또는 IO?
- 20. 3 계층 구조의 ASP.Net 세션 저장소 공급자
- 21. MVC 3 영역 - 계층 적 워크 플로
- 22. 개체는 3 계층 모델에서 데이터를 병합/결합합니까?
- 23. 3 계층 구조의 오류 처리
- 24. 3 계층 개발 NHibernate를 혼합
- 25. C# NHibernate 구조, 3 계층 응용 프로그램
- 26. 비즈니스 로직 및 서비스
- 27. .net : 3 계층 (프레젠테이션, 비즈니스, 데이터 액세스)을 가지고있는 동안 예외 처리?
- 28. ASP.Net의 3 계층 데이터베이스 응용 프로그램 웹 클라이언트 및 Java의 비즈니스 논리
- 29. 3 계층 아키텍처에서 "ADO.NET Entity Framework"파일은 어디에 있습니까?
- 30. 스트럿츠는 실시간 프로젝트에서 3 계층 아키텍처의 어느 계층 아래에 있습니까?
그럼 어떻게해야할까요? – Aliostad