좋은 사람,엔티티 메소드를 어떻게 분리해야합니까? SO의
오늘은 내 비즈니스 계층 디자인에 대한 심각한 우려를 가지고있다. 그것은 내가 로직의 2 종류가 있습니다, 이러한 개체에 로직을 추가 할하지만 엔티티 POCO 개체와 을 기반으로합니다
- 순수 C#을 논리
- 지속성 로직 (내 경우에는 LinqToEntities)
내 질문은 간단하다 :
어떻게해야 내가 별도의이 이가지?
첫째, 실체에 대한 방법으로이 두 가지를 추가하는 방법에 대해 생각했다. 그리고 부분 클래스을 사용하여 분할합니다.
두 번째로 나는 과체중 인을 과 같이 사용하고 싶지 않다고 생각했습니다. 어쩌면 왜 정적 클래스 또는 LinqToEntities 물건을 수행하는 메서드와 싱글 톤 및 엔티티 메서드에서 순수한 C#을 둡니다. 가 그럼 난 논리을 제공 fonctionnality별로 그룹화 여러 클래스를 것, 엔티티는 클래스 메소드에 인수로 전달됩니다. 두 번째 솔루션은 청소기 보이지만는 객체 지향 패러다임을 나누기 것처럼 보이기 때문에
그것은 정말 날 귀찮게. 반면에 첫 번째 것은 반 패턴과 같습니다.
당신은 어떻게 생각하십니까? 이 역설을 푸는 밝은 해결책이 있습니까?
정신 분열증 편집 : 사실 내가 말하는 지속성 논리는 BLL에서 DAL과 순수한 C# 논리로 연결되어야합니다. POCO 엔티티는 DAL에 의해 생성됩니다. 그런 다음 BLL에서이 엔티티를 확장하여 메소드를 추가 할 수 있습니다. 내 DAL에서 두 번째 솔루션에 노출 된 논리를 구조화해야합니다.
Erm, 왜 두 번째 방법이 O-O 패러다임을 깨뜨리는 이유는 무엇입니까? 정확하게 어떤 방법으로? 그리고 그것은 옵션 2에 대한 유일한 관심사입니까? –
OO에서는 객체에 메시지를 보냅니다. 두 번째 솔루션에서는 작업을 수행 할 메서드의 매개 변수로 개체를 전달합니다. OO 에뮬레이션처럼 보입니다 : 객체를 첫 번째 인자로 가지는 정적 메소드. 이것은 나의 유일한 관심사이며 과체중 개체를 피하고자합니다. – Roubachof
이 경우 엔티티는 비즈니스 엔티티가해야하는 것보다 몇 배나 많은 모든 것을 수행합니다. 아무튼, 나는 그것을 측정하는 가장 좋은 위치에 있지 않다. :) –