문제

객체를 구성하고 반환하는 Factory 클래스를 만들고 있습니다.저는 일반적으로 데이터 액세스 계층에서 모든 데이터 작업을 수행하지만, 여전히 목표를 달성할 수 있을 것이라고 생각하지 않습니다.내가 원하는 것은 SQLDataReader를 사용하여 데이터 정보를 빠르게 읽고 공장에서 반환될 개체를 채우는 것입니다.이게 어리석은 생각인가요?더 나은 접근 방식이 있습니까?가능하다면 DAL에서 DataSet을 반환하는 것을 선호하지 않습니다. 아니면 성능과 성능의 문제입니까?유지보수성?

도움이 되었습니까?

해결책

대부분의 경우 이 방법은 두 가지 주요 이점을 제공하므로 좋은 생각입니다.

  1. 이렇게 하면 데이터 액세스와 비즈니스 논리를 분리할 수 있습니다. 즉, 데이터베이스 디자인을 변경하는 경우 상위 계층 알고리즘을 변경할 필요가 없습니다.

  2. OO 관점에서 볼 때 일부 순수 데이터를 개체로 변환하고 개체에 동작을 추가할 수도 있으므로 코드를 더 쉽게 유지 관리하고 재사용할 수 있습니다.

다른 팁

SQLDATAREADER에서로드 한 모든 데이터를 사용할 것이라고 확신한다면 공장에서 시공 시간에 수행 할 수 있습니다. 그러나 데이터 세트에 많은 필드가있는 경우 소수의 소수 만 사용될 경우 액세서가 호출되는 시점에 데이터를 수요하는 것이 더 나은 리소스를 사용하는 것입니다.

즉, 모든 '조각'을 가지고있을 때 공장에로드하는 것이 좋습니다. 정확히 옳지 않은 경우 수정이 필요한 것을 알 수 있습니다. 항상 작동 할 수있는 가장 단순한 일로 시작하십시오.

나는 그것이 당신의 공장의 예상 사용에 달려 있다고 말할 것입니다. 데이터 액세스 계층의 공장 인 경우 데이터베이스의 데이터로 비즈니스 객체를 채우는 데 사용되는 경우 그렇습니다. 그렇습니다. (그만큼 Irepository 패턴은 이와 같은 것입니다 ... 일종의).

공장이 데이터 액세스 코드 근처에 거주하지 않으면 별도로 유지합니다. 기억하십시오 단일 책임 원칙: 객체는 변경할 이유가 하나뿐입니다. 공장이 데이터와 함께 개체를 채우는 경우 적절한 사용이지만 다른 작업을 수행하는 것 외에도 데이터로 개체를 채우는 경우 데이터를 추가하지 않는 것이 가장 좋습니다.

어떤 방법 으로든 상충 관계가 있으므로 일반적으로 가능한 한 오랫동안 물체를 단순하게 유지하고 싶습니다.

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