2013-03-18 2 views
0

최종 사용자에게 표시되는 내 웹 양식의 사용자 정의 그리드가 많습니다. 각 데이터베이스는 DAL을 통해 채워집니다. 각 클래스에 대해 별도의 클래스가 정의되어 있습니다. 그러나 새로운 요구 사항마다 별도의 사용자 지정 개체가 만들어 지므로 클래스 수를 줄이는 방법을 고려 중입니다.너무 많은 개체로 끝납니다 (레이어 디자인)

어떻게 번호를 줄일 수 있습니까? 그러한 요구 사항에 대한 수업 데이터 세트, 목록 등을 사용해야합니까?

+0

모델 개체를 채우기위한 seprate 클래스가 있습니까? 아니면 (Person, Address 등) 모델 개체를 분리합니까? – TalentTuner

+0

각 도메인 개체 (테이블)에 대해 별도의 클래스가 있습니다. 그러나 단일 테이블에 연결되지 않은 드롭 다운 목록, 사용자 지정 그리드, 목록 등이 끝나고있는 이러한 사용자 지정 클래스가 커지고 있습니다. 현재 이들을 별도의 네임 스페이스 안에 정의하고 있지만 효율적인 방식으로 이러한 종류의 시나리오를 처리하는 방법을 알고 싶습니다. 귀하의 회신에 감사드립니다. –

답변

1

"각각에 대해 정의 된 별도의 클래스"및 "그러한 요구 사항에 대한 클래스 수를 어떻게 줄일 수 있습니까?"

실제로 각 드롭 다운 목록에 대해 새 클래스를 만드시겠습니까? 내 경험에서 는, 일반적으로 나는이 클래스를 사용하여 일반화 :

public class DropDownItem<T>{ 
    public string Display{get;set;} 
    public T Value{get;set;} 
} 

그래도 Dictionary<T>를 사용하여 수행 할 수 있습니다.

ASP.Net에서는 사용하지 않았지만 Winform 및 WPF 데이터 바인딩에서는 잘 작동합니다. Asp.Net 특정, 나는 정상적인 선택 옵션이 필요를 공급하기에 충분하다고 생각합니다.

그러나 gridview의 경우 일반화되도록 클래스를 일반화해야합니다. nullable 인 대부분의 매개 변수를 가진 클래스를 선언하십시오.

예 하나의 요청에는 10 개의 매개 변수가 있으며 5 개의 매개 변수는 필수이고 다른 5 개의 요청은 null입니다. 그리드 표시 매개 변수 1,2,3,4,5,7,8 및 그리드 B는 매개 변수 1,2,3,4,5,6,9,10을 표시합니다. 이 방법으로 하나의 클래스를 더 많은 그리드에서 사용할 수 있습니다.

DataSets/DataTable을 사용하지 마십시오. DataSet보다 많은 클래스를 사용하는 것이 좋습니다. DataSet의 "COLUMN_NAME"대신 강력한 형식이므로 DataSet보다 많은 클래스를 사용하면 유지 관리 기능이 향상됩니다.

1

이것은 너무 중요하지 않겠지 만, 클래스로 추가되는 각 요구 사항이 많은 작업으로 끝나면 아마도 상속을 살펴봄으로써 해당 클래스의 상용구/공유 코드를 정리할 수 있습니다.

일반적으로 많은 클래스 (다른 클래스와 기능이 겹치지 않음)는 좋은 것입니다. 반대의 복잡성 문제, 즉 모든 코드가 더 적은 클래스로 채워지는 "god"클래스는 훨씬 더 심각합니다.

+0

. 일부 수업은 비즈니스 요구 사항이며 표시 용도로만 사용됩니다 (여러 표로 구성된 표). 나는 가능하면 상속 받는다. 그러나 나는 단지 부정에 대해 회의적이었다. 내가 끝내고있는 수업들. –

+1

너 자신을 많이 반복하지 않으면 나는 너무 많이 걱정하지 않을 것이다. 당신이 그렇지 않다면, 당신은 위대한 OO에 대한 그곳의 대부분입니다. – Thabo

관련 문제