문제

특정 사례에 대해 귀하의 의견을 제시하고 싶습니다. 이것은 서비스 계층 대 헬퍼 객체에 관한 것입니다. 저는 이상적인 패턴을 찾고있는 것이 아니라, 독신 프로그래밍 동료들이 이것에 대해 생각하는 것에 대한 이해뿐입니다.

현재 애플리케이션에는 전체 도메인 모델 (LINQ에서 SQL, 매우 가벼운 리포지토리가있는 다음 iQueryable <>의 확장 방법을 사용하여 비즈니스 요구 사항을 기반으로 필터/정렬/주문)을 사용한 다음 그룹화를 기반으로 서비스를 포함하는 서비스 계층이 있습니다. IREGISTRITIONSERVICE와 같은 책임의 (등록 사용자, 로그인 이름의 가용성 확인 등)

이제 경고. 또한 암호화와 같은 일을하는 "헬퍼"클래스가 있으며 해당 디렉토리 (예 : 사용자 정의 열거 등)에 다른 그룹화 할 수없는 요소를 채웠습니다.

내 애플리케이션에 대한 사용자 정의 링크 생성을 처리하는 새로운 클래스를 만들어야합니다. 이는 문자열보다 거의 더 많은 객체를 형성하고 속성을 고려합니다. 내부 작업은 관련이 없습니다. 그러나 이제는 어떤 종류의 "링크 서비스"를 인스턴스화하는 데 어려움을 겪고 있습니다.

동시에 나는 "헬퍼"네임 스페이스/디렉토리 (예 : LinkManager)에서 수업과 다른 것들이 느슨하게 혼합되어 싶다고 생각하지 않습니다.

무엇을해야합니까? 여전히 비즈니스 계층 수준 인 물건을 어디에 두십니까? 동시에 비즈니스/서비스 계층의 품목 수를 어떻게 제한합니까? 세션 액세스를 단순화하고 관리하는 중간 객체와 같은 모든 작은 도우미 클래스를 어디에 고착 시키십니까 (적어도 내가 그렇게 강하게 입력하고 싶다고 가정합니다).

당신이 무슨 생각을하는지 제게 알려주세요? 감사 !

도움이 되었습니까?

해결책

나에게, 작업에 적합한 도구를 사용하는 것이 중요합니다. 링크를 생성하기 위해 어떤 종류의 시설이 필요한 경우, 기본적으로 엔티티 속성을 형식화 된 문자열에 매핑하는 경우 시설을 작성하십시오. 서비스 일 필요는 없습니다 ... 반대로, 그런 것에 대한 완전한 서비스를 갖는 것은 아마도 과잉 일 것입니다. 그러나 나는 이것을 일반적인 "도우미"에 단지 뭉치지 않을 것입니다. 이것은 특정 목적과 의도를 가진 것 같고 그 뒤에 특정한 행동이 있습니다. 따라서 새로운 프로젝트라도 해당 행동에 적합한 위치에 넣으십시오.

응용 프로그램에 "일반"코드가 큰 덩어리를 갖지 않으려 고 노력합니다. 모든 것은 목적을 가지고 있으며 특정 행동을 구현합니다. 때때로 그 목적과 행동은 재사용 가능하지만, 나는 여전히 내 도메인의 재사용 가능한 요소를 논리적으로 조직하려고 노력합니다. 높은 수준에서 대부분의 응용 프로그램이 다음으로 나뉘어져 있습니다.

  1. 고객
  2. API/서비스
  3. 도메인
  4. 데이터 액세스 (선택 사항)
  5. 뼈대

이러한 종류의 재사용 가능한 기능은 프레임 워크와 도메인 사이의 일종의 황천 영역에 속합니다. 그것의 일부는 일부 기본 클래스 및/또는 인터페이스 및 프레임 워크의 지원 유형으로 존재할 수 있으며, 나머지 절반은 내 도메인 내에 상주하는 콘크리트 구현입니다. 때로는 이상하게 보이지만이 방법을 구성하면 도메인을 최대한 깨끗하게 유지하는 데 도움이되며 (비즈니스 문제에 전용) 공통 및 재사용 가능한 개념을 낮은 수준의 "프레임 워크"유형으로 추상화 할 수 있습니다.

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