2012-02-14 2 views
0

다소 간단한 질문이지만, Hibernate와 저장소 패턴을 사용하는 사람들이 그들의 구체적인 구현체의 이름을 알고 싶습니다.NHibernate naming semantics

그래서 당신은 당신의 콘크리트 저장소 말의 이름을 것입니다, 당신은 IEmployeeRepository이 있다고 :

  • NHibernateEmployeeRepository - 매우 장황한를
  • NHibEmployeeRepository
  • NHEmployeeRepository
  • - 행의 세 수도 ...
  • NhEmployeeRepoitory

중요하지 않은 일들의 웅장한 계획이지만 어떤 종류의 표준이 있는지 알고 싶습니다.

건배.

답변

3

우리는 NHibernate***Repository이라고 부릅니다. 아마도 가장 설명적인 것이기 때문입니다. 멋진 말을위한 저장소가 있다면 어떨까요? 그런 다음 NhNhRepository라고합니다. 어느 것이 혼란 스러울 지.

wordiness가 마음에 들지 않는다면, 또 다른 옵션은 네임 스페이스를 사용하고 자신의 어셈블리에 NHibernate 저장소 구현을 배치하는 것입니다 (어쨌든 그렇게해야 할 것입니다).

그런 다음 저장소를 호출 할 수 있습니다. 예 : EmployeeRepository, 예를 들어 CompanyName.ProductName.Data.NHibernateRepositories 네임 스페이스에 있어야합니다.

+0

건배, NHibernate *** 저장소와 함께 갈 것입니다. – David

+0

문제 해결에 도움이된다면 대답을 수락 된 것으로 표시하는 것을 잊지 마십시오. – devdigital

1

NHibernate에 대한 패턴이 존재하는지는 모르겠지만 코드의 모든 것을 명명하는 규칙 (Clean Coder)에 기반하여, 두문자어 사용을 피하면서 중요한 이름을 넣어야합니다. 그래서 NHibernateEmployeeRepository 더 많은 의미를 가져오고 코드를 명확하게합니다.

1

NHibernate를 사용하지 않고 데이터에 액세스하는 리포지토리가 종종 있기 때문에 NHibernate를 내 리포지토리의 이름에 추가하지 않아도됩니다. 예를 들어 ADO.NET만을 사용하는 레거시 코드를 혼합하고 싶다면 어떻게해야할까요? 당신의 이름은 당신이 별도의 클래스가 필요하다는 것을 암시하지만, 두 클래스가 분리되어 IEmployeeRepository 역할을합니다.

"NHibernate"라는 단어가있는 모든 저장소를 지금은 재미 있을지 모르지만 언젠가는 "NHibernate"저장소라고하는 레이블이 붙은 수백 개의 엔티티가있을 때 언쟁 할 것입니다.

BTW. 새로운 greenfields 프로젝트를 시작한다면 저장소 패턴에 대한 대안을 조사하는 것이 좋습니다. 그것이 지난 몇 년은 호의에서 떨어지기 시작했습니다.

+0

cbp, greenfields 프로젝트입니다. 사용한 저장소 패턴의 대안에 대한 권장 사항이 있습니까? 나는 당신의 경험을 듣는 것에 매우 관심이 있습니다. – David

+0

안녕하세요.이 글에서 시작하는 것이 좋습니다. http://ayende.com/blog/3955/repository-is-the-new-singleton하지만 주위의 대화를 따르십시오. 목표는 리포지토리가 만드는 불필요한 추상화 계층을 제거하는 것입니다. ORM은 이미 필요한 모든 추상화를 제공합니다. 요즘 MVC, 메모리 내 데이터베이스, LINQ, 성숙한 ORM 등이 있습니다. 과거에 필요했던 추상화 저장소 계층은 더 이상 필요하지 않습니다. – cbp

관련 문제