2013-11-25 1 views
1

프리젠 테이션 레이어가 가져오고 저장하는 모든 데이터 조각이 가능한 한 단순한 컨텍스트 정보가 첨부되지 않은 패턴의 이름은 무엇입니까?깨끗한 데이터 패턴입니까?

예 :

CustomerManager manager = new CustomerManager(); 
Customer customer = manager.GetCustomerByEmail(string emailAddress); 
DoSomething(customer); 
manager.Save(customer); 

MVC에서 사용하는 것이 좋습니다. 컨트롤러와 뷰 모델이 ef 컨텍스트를 사용하는 예제가 많이 있습니다. 나쁜 행동으로 나를 때린다.

추신. "Clean Data"패턴에 대한 언급은 실제 패턴에 대한 참조가 아니라 내 최고의 추측이었습니다.

+1

이 더 도메인 중심의 나에게 .. 확실하지 내가 이제까지 "데이터 제거"패턴 건너했습니다 보인다. 아마 당신이 생각하는 것은 "Active Record"입니다. –

답변

2

나는 "Clean Data"패턴을 보지 못했습니다. 그러나 이것은 Active Record Pattern과 비슷합니다.

일반적으로이 패턴을 적용 할 때 도메인 개체는 Insert(), Update()Delete() 개의 메소드가 있습니다.

최근에는 이러한 접근 방식을 자주 볼 수 없습니다. 사람들은 퍼시스턴스 로직과 비즈니스 로직을 분리하는 것을 선호하는 경향이 있습니다. 반면에 이러한 접근 방식은 당신을 길들이게하는 반면에 매우 얽혀 있습니다. 이렇게하면 테스트하기가 더 어려워지고 코드베이스는 변경에 저항하게됩니다.

+0

개체 클래스가 아닌 Manager 클래스에 내 CRUD 메서드가 있습니다. 객체 클래스는 모든 비즈니스 로직을 포함하는 Manager 클래스에서 가능한 한 간단합니다. 또한 비즈니스 로직과 퍼시스턴스 로직을 구분하고 싶지만 여기서는 프레젠테이션과 비즈니스 레이어를 구분합니다. – Jamie

1

내가 사용하는 경향이있는 명명 된 패턴은 저장소가 데이터 액세스 계층의 사용 방법에 대한 구현 세부 사항을 캡슐화하는 "저장소"패턴입니다. 그렇게하면 컨트롤러 레이어 코드없이 EF (또는 무엇이든)에서 전환 할 수 있습니다.

http://martinfowler.com/eaaCatalog/repository.html

+0

링크를 살펴 보았습니다. 내가 성취하려고하는 것은 너무 복잡해 보입니다. 더 간단한 패턴을 알고 있습니까? – Jamie

+0

리포지토리의 구현은 복잡 할뿐입니다. 저장소 클래스는 해당 클래스를 사용하는 유형에서 필요한 특정 메소드 만 노출합니다. –