2012-04-15 7 views
1

저장소 패턴으로 n 계층 아키텍처를 만들고 싶습니다. BLL 계층을 통해 모든 호출을 복제 한 다음 BLL을 통해 데이터에만 액세스하는 것이 합리적인지 궁금합니다. 아니면 DAL과 BLL을 통해 직접 액세스 할 수 있습니까?BLL을 사용하더라도 DAL에 계속 액세스해야합니까?

+0

나는 개인적으로 내 blal을 통해 내 dal에 액세스하고 전화를 복제합니다. 비즈니스 로직을 추가해야 할 때를 알 수 없으며 bll에 새 호출을 추가하는 대신 bll에서 호출을 수정하는 것이 훨씬 쉽습니다. –

+0

"데이터 전용 통화"는 어떻게 정의합니까? 왜 당신은 BL에서 "전화를 중복"한다고 생각합니까? 어떤 기술을 프로그래밍하고 있습니까 (Winforms, Webforms, MVC ...?)? –

답변

1

IMO 그것은 단지을 위해 복제하는 것이 의미가 없습니다.

보통 (정말 모든 접근 방식은 장단점을 가지고 있지만, 아무것도 항상 틀리거나 그 자체로 좋은하지 않습니다)하지만 등을 정확히 테이블

일치 예를 들어 (간체) 비트 '과립의 데이터와 데이터 레이어 거래

비즈니스 계층은이를 결합 할 수 있으며 '논리'와 논리 모델 (데이터 모델 및 데이터)을 중심으로 더욱 집중됩니다.

귀하가 비즈 레이어에서 DAL의 복제본을 정확하게 찾으면 포인트 정렬이 누락 될 가능성이 큽니다. 어떤 것들은 재구성되거나, 폐기되거나, 단순화 될 필요가 있습니다.

예 : 다음과 같이 질문하십시오. DAL을 다른 유형의 저장소 (데이터/DAL이 작동하는 방식을 변경해야하는 사물의 다른 구성 또는 다른 구성)로 작업하도록 바꾸십시오. BLL은 어떻게 보이게됩니까? 똑같다? 비즈니스 계층은 '데이터를 따르지 않아야합니다.'- 자체 규칙을 가져야하며, 도메인의 논리, 수행중인 작업에 대해 다시 한 번 강조해야합니다. 데이터는 데이터에 관한 것이어야합니다.

간단히 말하면 여러분의 시스템을 어떻게 디자인 할 것인가? 비즈니스 계층을 잘 활용한다면 (비교적 일반적이지 않거나 완전히 다른 아키텍처를 결정하지 않는 한 일반적으로해야합니다) 그렇지 않으면 복제 할 필요가 없습니다.

희망이 도움이됩니다.

관련 문제