저장소 패턴으로 n 계층 아키텍처를 만들고 싶습니다. BLL 계층을 통해 모든 호출을 복제 한 다음 BLL을 통해 데이터에만 액세스하는 것이 합리적인지 궁금합니다. 아니면 DAL과 BLL을 통해 직접 액세스 할 수 있습니까?BLL을 사용하더라도 DAL에 계속 액세스해야합니까?
1
A
답변
1
IMO 그것은 단지을 위해 복제하는 것이 의미가 없습니다.
는
보통 (정말 모든 접근 방식은 장단점을 가지고 있지만, 아무것도 항상 틀리거나 그 자체로 좋은하지 않습니다)하지만 등을 정확히 테이블
일치 예를 들어 (간체) 비트 '과립의 데이터와 데이터 레이어 거래비즈니스 계층은이를 결합 할 수 있으며 '논리'와 논리 모델 (데이터 모델 및 데이터)을 중심으로 더욱 집중됩니다.
귀하가 비즈 레이어에서 DAL의 복제본을 정확하게 찾으면 포인트 정렬이 누락 될 가능성이 큽니다. 어떤 것들은 재구성되거나, 폐기되거나, 단순화 될 필요가 있습니다.
예 : 다음과 같이 질문하십시오. DAL을 다른 유형의 저장소 (데이터/DAL이 작동하는 방식을 변경해야하는 사물의 다른 구성 또는 다른 구성)로 작업하도록 바꾸십시오. BLL은 어떻게 보이게됩니까? 똑같다? 비즈니스 계층은 '데이터를 따르지 않아야합니다.'- 자체 규칙을 가져야하며, 도메인의 논리, 수행중인 작업에 대해 다시 한 번 강조해야합니다. 데이터는 데이터에 관한 것이어야합니다.
간단히 말하면 여러분의 시스템을 어떻게 디자인 할 것인가? 비즈니스 계층을 잘 활용한다면 (비교적 일반적이지 않거나 완전히 다른 아키텍처를 결정하지 않는 한 일반적으로해야합니다) 그렇지 않으면 복제 할 필요가 없습니다.
희망이 도움이됩니다.
관련 문제
- 1. 다른 모듈의 DAL에 어떻게 액세스해야합니까?
- 2. Rails 3은 "ruby -v"가 1.9.2를 사용하더라도 계속 1.8.7을 사용합니다.
- 3. LINQ - LINQ는 일반적으로 DAL에 속해야합니까?
- 4. mysql 별칭을 어떻게 액세스해야합니까?
- 5. 서비스 계층에서 HttpContext에 액세스해야합니까?
- 6. GCD를 사용하더라도 UI가 멈추다
- 7. ASP.NET 3-Tier/3-layer 아키텍처 - UI와 BLL을 분리하는 방법
- 8. TryGetValue를 사용하여 .net 사전에 액세스해야합니까?
- 9. 정적 필드 view.GONE에 정적으로 액세스해야합니까?
- 10. web2py의 DAL에 대한 명명 규칙 목록이 있습니까?
- 11. IEnumerable Items Disappear - DAL에 있지만 호출자가 없습니다.
- 12. DAL에 대한 일반적인 선택 방법을 어떻게 만드나요?
- 13. VB에서 작성된 오래된 asp 사이트에 대해 DAL과 BLL을 작성하는 방법
- 14. Android : 비동기 방식으로 앱 내의 데이터베이스에 액세스해야합니까?
- 15. DAL을 사용하여 응용 프로그램 구성에 액세스해야합니까?
- 16. PHP4로 WebDAV 파일 서버에 어떻게 액세스해야합니까?
- 17. 컴파일 된 jar의 리소스에 어떻게 액세스해야합니까?
- 18. 양식을 이름, ID 또는 배열 색인으로 액세스해야합니까?
- 19. Sitecore에 현지화 된 UI 문자열을 저장/액세스해야합니까?
- 20. 클래스 메서드 코드가 외부 변수에 직접 액세스해야합니까?
- 21. theme_preprocess에서 설정 한 vars에 어떻게 액세스해야합니까?
- 22. 분리 된 컨트롤러가 모델에 어떻게 액세스해야합니까?
- 23. 클래스 구현 내에서 직접 Ivars에 액세스해야합니까?
- 24. 동일한 VM에서 실행중인 JMX MBeanServer에 어떻게 액세스해야합니까?
- 25. Perl 하위 클래스에서 인스턴스 데이터에 어떻게 액세스해야합니까?
- 26. 웹 사이트의 비즈니스 계층이 세션 상태에 액세스해야합니까?
- 27. 한 번 사용하더라도 XML 리소스를 사용해야합니까?
- 28. 잠자기를 사용하더라도 스레드가 CPU 시간을 넘겨주지 않습니다.
- 29. 부스트가 this를 사용하더라도 멤버 함수에 바인딩하지 않습니다.
- 30. 사용자가 내비게이션을 사용하더라도 내 Android 앱이 작동하도록합니다. 어떻게해야합니까?
나는 개인적으로 내 blal을 통해 내 dal에 액세스하고 전화를 복제합니다. 비즈니스 로직을 추가해야 할 때를 알 수 없으며 bll에 새 호출을 추가하는 대신 bll에서 호출을 수정하는 것이 훨씬 쉽습니다. –
"데이터 전용 통화"는 어떻게 정의합니까? 왜 당신은 BL에서 "전화를 중복"한다고 생각합니까? 어떤 기술을 프로그래밍하고 있습니까 (Winforms, Webforms, MVC ...?)? –