문제

나는 나의 웹 사이트 같은 유래 약간의 기술 부채는 내가 하려고 돈을 지불합니다.는 계약자,나는 많은 장소에서 많은 다른 방법 이러한 목적을 달성하기 위한 결과,그러나 방법으로 난 것입니다..

프레젠테이션(웹)

비즈니스 층(구식 엔터티 클래스고 BL 층)

데이터 레이어(DA 클래스의 SQL 서버를 통해 저장 Proc)

나의 질문에 주로 관심 비즈니스층이다.지금은 엔터티를 네임스페이스 및 businesslogic 를 갖습 네임스페이스가 있습니다.

BL 에 대한 참조가 있 DA 와 실행을 선택합니다.는 엔티티에 대한 참조가 있 DA (DA"알지"의 BL 또는 법인)

내가 정말 원하는 모든 나옵의 데이터로 엔터티 내에서 발생하는 BL-따라서 비즈니스 논리입니다.그러나 내가 원하는 엔티티에 액세스할 수 있 BL 할 필요가있는 경우--고,따라서 제거할 엔터티를 참조하 DL.

그래서...

은"잘못된"하 BL 및 Entity 체 이내에는 동일한 네임스페이스 그래서 그들은 함께 작업 할 수 있다?

기본적으로 노력하고 있는 엔티티와 같은 물체 직원(전형적인 예이며,그렇지?) 고 직원

public Hashtable[] SubordinateEmployees

속성을 반환하는 해시 테이블의 다른 직원 개체고 보고하는 이 employee.그러나 나는 원하지 않을 로드하는 때까지의 필요합니다.그래서 대부분의 직원산지 않을 것을 얻을 액세스하지만,그것은 때,자체 부하와 통화하 BL 를 호출하는 다.

는 질문들에게 감?

그렇다면,나의 솔루션?

사전에 너무 감사합니다!

도움이 되었습니까?

해결책

당신의 모범이 나타내는 상황을 다루는 일반적인 방법은 외관입니다. 직원 대상에서 하위 직원을 얻는 대신 비즈니스 로직에 대한 통화를 사용하여이를 얻을 수 있습니다.

hashtable = BL.GetSubordinateEmployees(supervisor);

이렇게하면 부하 직원에 대한 단일 액세스 지점이 있으며 데이터 계층에 액세스하고 엔티티를 작성하는 것만이 하나뿐입니다.

다른 팁

나를 보면 내가 당신을 보여줄 수 있다 더 좋은 생각하는 방법에 대해 이

당신은 당신의 데이터 access(sql server,mysql,평 xml 파일,etc.) 의 모든 이해야한 추상화된다 아무것도 다른 응용 프로그램에서 관심을 가져야하는 방법을 알고 당신이 얻고 있는 데이터는 복용하는 경우 다른 아무것도 알고있는 방법을 받고 있는 데이터 레이어가 있 위반이 발생합니다.는 경우 DAL 량 아무것도 다른 데이터를 얻을 당신은 층을 위반입니다.다음 당신을 구현한 데이터 액세스 인터페이스가 다음과 같 SPAN>는 귀하의 비즈니스 레이어 사용이 매우 중요하다는 것을 만들기 위한 당신의 코드를 테스트하여 당신을 강제로 별도의 레이어입니다.

귀하의 엔티티 데이터에 배치할 수 있 DAL 이름을 공백이나 그들에게 자신을주고,그들이 거기에 자신의 힘드리겠습니다.데이터 엔티티는 바보 같은 개체고 포함해야 한다는 매우 더 작은 논리로만 알고 있어 자신의 데이터 그들은,그들은하지 않는 비즈니스 논리를 포함!, 데이터 액세스 LOCIC 또는 UI 논리입니다.그들이 할 경우 당신은 층을 위반입니다.유일한 기능의 엔티티 데이터를 데이터를 저장 및 전달에서 하나의 층이 있습니다.

Biz 층 구현한 데이터 액세스 인터페이스 SPAN>우리는 이야기에 대해하기 전에 인스턴스화할 수 있습니다 이것으로 공장,IOC 컨테이너,또는 다른 모든 실패 콘크리트 타입이지만,추가 setter 속성이 변경 될 수 있습니다.Biz 층만 처리 비즈니스 논리,그것이 알고하지 않거나 관심이 어디에서 데이터가 제공하거나 그것은 어디로 가는지,그것에만 관심에 대한 데이터 조작을 준수하는 비즈니스의 규칙이 포함됩 날짜를 검증,필터링(부분이 말하고 DAL 무엇이 필요로 하는 데이터,하자 DAL 그림 그것을 얻는 방법).기본적으로 사업을 처리 모든 논리지 않는 UI 관련이나 데이터 검색 관련이 있습니다.같은 달에 비해야 하는 인터페이스를 구현을 위해 같은 이유입니다.

UI 층에 액세스하는 비즈 레이어 같은 방법으로 비즈 레이어에 액세스하 DAL 같은 이유입니다.모든 UI 계층에 대한 관심은 데이터를 표시하고 점점에서 데이터를 사용합니다.IU 레이어야에 대해 아무것도 몰 비즈니스 원칙과 예외가 데이터 유효성 검사를 채우는 데 필요한 데이터를 요한다.

의 이점이 건축가 강제 분리의 관심을 쉽게 만들기 테스트,보다 유연하고 유지하기 쉽습니다.오늘은 웹 사이트를 구축 하지만 내일 당신을 허용하려고 다른 사람을 통합하는 vi 웹 서비스,당신이해야 할 모든 당신은 웹 서비스를 구현하는 이비즈 인 인터페이스 및 완료 할 때,당신은 버그를 수정하에서 사업 층을,그것은 이미정 모두에서 당신의 웹사이트와 웹 서비스입니다.

이 다음 수준,당신이 말할 수 있습 하고 있는 많은 무거운 수정하고 당신이 더 필요로 하는 강력한 서버는 이를 처리하기 위한 그래서 당신이해야 할 모든 것을 구현 Span>과 이비즈 인 인터페이스는 정말 래퍼 WCF 를 처리하는 간에 통신이 당신의 서버,지금은 응용 프로그램 사이에 분포되어 여러 서버와 있지 않았을 변경 코드 그것을 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top