2011-04-06 6 views

답변

1

응용 프로그램의 성격에 따라 - 자선, 온라인 retailler 및 부동산 중개인이 모두 동일한 웹 서버 및 데이터베이스를 사용할 수 있기 때문에 - 중간에있는 비트는 매우 다릅니다.

+1

나는 그들이 같은 데이터베이스를 사용한다고 생각하지 않는다. 그것들은 다른 주제이다. 어쩌면 당신은 동일한 db 서버를 의미 할 수도 있습니다. – JonH

2

비즈니스 로직이 있기 때문에. 즉, 비즈니스 시나리오에 특정한 논리입니다.

다른 계층에는 이러한 논리가 없어야합니다. 프론트 엔드는 데이터를 표시하고 수집해야하며 데이터베이스는 데이터를 저장해야하며 DAO는 데이터를 검색하고 저장해야합니다.

비즈니스 계층은 UI 및 DB에서 입력으로 들어오는 것을 기반으로 논리를 수행해야합니다.

모든 소프트웨어가 비즈니스를 지원하기 때문에 '비즈니스'입니다.

+0

+1 - BL에 대한 좋은 설명. – JonH

0

여기 내 2 센트입니다.

왜? 그것이 그것이 인 방법으로 N-Tier 패러다임으로 정의되어 있기 때문입니다. 우리는 무엇인가가 그것으로 정의 될 때 그런 이름으로 불리는 이유를 묻지 않습니다.

N-Tier 패러다임은 오래된 것입니다. 10 세 이상입니다. N-Tiere 디자인은 뷰 로직과 비즈니스 로직을 분리하는 데 도움이되었지만 이제는 유행이 아닙니다.

오늘 Domain Driven Design 일명 DDD는 도메인 로직을 살펴보고 그에 대한 시스템을 구축하는 새로운 패러다임입니다. 도메인 논리는 데이터베이스의 모든 곳, UI 및 중간 계층에 있습니다. 그래서 당신의 테이블은 Order, Topping 등으로 불릴 것입니다. 피자 가게를위한 소프트웨어를 만들고 있다면 은행용 소프트웨어를 개발할 때 Account, Transaction이 될 것입니다. 비즈니스 로직은 UI 또는 데이터베이스뿐만 아니라 중간 계층에도 도처에 있습니다 ().

는 이제 계층 구조는 여전히 좋은 아키텍처 접근 방식으로 인정하는 동안 (인 중간 계층을 가지고 은 더이상 "비즈니스 계층"이라고)는 N 계층이 없습니다.

+0

나는 꽤 동의하지 않는다. 첫째, DDD는 전혀 새로운 것이 아닙니다. 그런 다음 DDD를 사용하면 도메인 논리는 도메인 객체에만 있습니다. UI가 아니라 데이터베이스에 있습니다. 도메인 개체는 '비즈니스 계층'을 나타냅니다. – Bozho

+0

도메인 개체는 개체입니다. 그들은 비즈니스 계층을 대표하지 않습니다. 사실 그들은 데이터 계층에 있습니다. – Aliostad

+0

예, 엔티티입니다. 하지만 그들은 DAO 계층이 아닙니다. 데이터베이스 작업 (저장소)을 관리하는 별도의 계층이 있습니다. 그리고 씬 서비스 레이어는 도메인 개체를 조정합니다. 그럼에도 불구하고 비즈니스 로직은 당신이 말하는 것처럼 흩어지지 않습니다. – Bozho

0

OO 애플리케이션에서 저는 비즈니스 레이어를 비즈니스 규칙, 프로세스 또는 객체에 적용되는 워크 플로우라고 생각합니다. 그러나 많은 경우에이 객체가 POCO (C#의 Plain Old C# Objects, Java의 POJO 등)가 될 뿐이라는 것을 알았습니다. 문제는 객체의 동작이 객체에서 분리되어 임의의 "비즈니스 로직"클래스로 이동한다는 것입니다.

제 개인적인 생각은 "비즈니스 계층"이 개체에 작용해야하지만 개체의 동작을 개체로 바꾸지 않아야한다는 것입니다. 또한 상속 및 다형성을 사용하여 Closed Principle과 같은 다른 사례를 더 잘 구현할 수 있습니다.

"OCP" Area 클래스가 "비즈니스 계층"이지만 다양한 Shape 객체에는 각 유형의 모양에 대한 비헤이비어 논리가 포함되어 있습니다. 지역 코드가 거의 바뀌지 않으면이 방법을 사용하십시오.

관련 문제