2013-07-03 3 views
0

그래서 데이터베이스에서 다른 데이터를 많이 모으고 최종 사용자가 볼 수있는 여러 차트를 업데이트하는 프로그램을 만듭니다. 모든 데이터는이 날짜가 차트에개체 사이에 선택할 때 가장 좋은 방법

모든 데이터를 X, 중간막을 표시하는 데 사용되는 첨부 날짜가 있습니다

지금 어떤 수준에있는 모든 데이터는 동일한 패턴을 따른다 (단순히 이름 인) **

이제는 내가 수퍼 클래스 (추상 클래스)를 만드는 것입니다. 내 생각은이 수퍼 클래스의 개별 하위 클래스를 만들고 각자 고유 한 구현 및 필드를 가질 수있게하는 것이 었습니다.

이제 이러한 개체 중 일부는 상대적으로 작을 것입니다. 예를 들어 getter와 setter가있는 세 개의 필드로만 구성된 개체가 있습니다. 가능한 가장 적은 수의 물건을 가지고 탈주하고 정복하는 것이 가장 좋은가?

작은 개체를 사용하는 대신 짧은 형식의 개체가 동일한 유형의 개체를 말하는 반면 다른 개체는 절반을 차지하지 않는 필드가있는 이유는이 개체를 두 개체로 나누어서 피하기 위해서입니다. 시간의 50 %를 차지할 필드가 있습니다. 내가 코멘트를 떠나 내가 응답하시기 바랍니다하지 않을 경우 당신이 내 질문을 이해 수 있기를 바랍니다

class Callback : ContactQueue 
{ 


public int completedCallbacks{get; set;} 
    public int completed_within_timeframe{get; set;} 
    public int answerPercentage { get; set; } 
    public override String type {get; set;} 
    public override DateTime period { get; set; } 
    public Callback(String type,DateTime period) 
    { 
     this.type = type; 
     this.period = period; 
    } 
    public override String toString() 
    { 
     return type; 
    } 
    public double percentageCompleted { 
     get 
     { 
      return completed_within_timeframe/completedCallbacks * 100; // todo 
     } 
    } 

} 

가능한 한 빨리 서브 클래스에

예 : 여기

내 객체가 보는 방법의 예입니다 가능

+1

내가 본 곳에서 당신의 초기 접근 방식이 가장 좋습니다. 물론 지금은 다소 과잉이라고 느껴질 수도 있지만, 예를 들어 물체가 더 많은 속성을 가진다면 미래의 증거가 될 것입니다. 다른 속성이 채워지거나 표현되지 않는 큰 개체를 사용하는 것은 실제 개체가 아니라 매우 개체 지향적 인 개체입니다. –

+0

@ Bartdude 정확히 내가 무엇을 생각했는지 확신 할 수 없었습니다. –

답변

2

정말 시스템에 따라 다릅니다. 필드에 스토리지를 갖고 싶다면 getters/setter가 많은 객체를 하나 가질 수 있습니다.

하지만 행동으로 나누는 것이 좋습니다. 당신은 당신의 객체에 메소드를 추가하기를 원할 것입니다. 그리고이 시점에서 첫 번째 방법을 사용했다면 올바르게 수행하기 위해 이러한 메소드 내부에서 많은 수표를 만들어야합니다. 확장 성을 위해 객체를 분리해야합니다.

+0

지금은 1 datetime 1 int 및 1 string과 같은 필드입니다. –

+0

코드를보고 올바른 방향으로 가고 있습니다. 또한 당신은'toString'과 같은 추상 클래스와'type'의 getters/setter와 같은 메소드를 구현하기를 원할 수도 있습니다. 필요한 경우 재정의 할 수 있습니다. 하위 클래스를 만들 때마다가 아닙니다. – Tala

관련 문제