2013-03-04 2 views
4

나는이 질문에 대해 그런 멍청한 놈처럼 느껴진다. 그러나 지금 당분간 나를 괴롭 히고있다.비즈니스 로직 레이어 디자인

계층 형 응용 프로그램의 BLL을 디자인 할 때 모든 엔터티 클래스를 하나의 네임 스페이스에 넣을 수 있습니까? 예 : 고객과 차량이있는 데이터베이스가 있고이 차량이 서비스를받는 경우 월 단위로 말할 수 있습니다. 나는 서비스 모듈과 별도의 '모듈'에 고객과 차량을 유지할 것이라고 생각한다. (서비스가 완료된 방식이나 데이터가 저장된 방식을 업데이트해야 할 경우, Customer \ Vehicle 모듈).

이런 식으로 생각하면 맞습니까? 아니면 디자인 아이디어를 변경해야합니까?

이로 인해 SQL에 LINQ를 사용하는 데 문제가 발생했습니다. 테이블의 엔티티 클래스 중 절반이 'module'A에 포함되어 있고 다른 하나가 'module'B에 있으면 어딘가에 'module'A 'reference'module 'B가 있고 그 반대의 경우에는 2 개의 테이블 사이의 연관성을 수용 할 수 있습니다. 국경과 '모듈'.

OR (지금 당장 생각해보십시오) '모듈'(두 모듈에서 같은 클래스를 가짐)에서 1 테이블의 엔티티 클래스가 겹치시겠습니까?

모든 조언을 주시면 감사하겠습니다.

+0

네임 스페이스 수정을 피하는 목적은 무엇입니까? 나는 조립을 이해할 것이다. 이름 모듈을 따옴표로 묶어 사용한다는 것에 유의하십시오. 이는이 클래스의 경계가 무엇 인지도 확실히 알 수 없음을 의미합니다. –

+1

True design-patterns-guys도 DAL과 BLL을 분리합니다. 따라서 그들은 구체적인 데이터 액세스 기술, 한계 및 구현 세부 사항에 대해 걱정하지 않습니다. – Dennis

답변

1

"데이터 액세스 레이어가있는 경우 서비스가 완료되는 방식이나 데이터가 저장되는 방식을 업데이트해야하는 경우 고객을 만질 필요가 없으므로" \ 차량 모듈 ". DAL은 데이터 검색 및 저장을 처리합니다.

물론 차량을 업데이트해야하며 한 곳에서해야하는 규칙을 업데이트하는 것이 가장 편리 할 수 ​​있습니다. 이러한 규칙으로 고객 및 차량 BLL을 간단하게 작성할 수 있습니다. 그런 다음 Customer 및 Vehicle을 사용하는 CustomerVehicleService를 추가하기 만하면됩니다. 당신이 할 수없는 규칙은 없습니다.

관련 문제