2013-07-03 67 views
0

因此,我正在創建一個程序,該程序從數據庫中收集大量不同的數據,併爲最終用戶創建/更新多個圖表以供查看。在對象之間進行選擇時的最佳實踐

現在在一定程度上的所有數據的遵循相同的模式: 每個數據具有附加到它的日期這個日期用於在圖表上顯示X Cordinate

每個數據有一個所謂的隊列(這只是一個名稱)**

現在我到目前爲止所做的是創建一個超類(抽象類)。我的想法是創建這個超類的單個子類,並允許它們擁有自己的實現和字段。

現在我的問題,這些對象中的一些將相對較小,例如我有一個對象,只有三個字段與getter和setter組成。是最好的實現和爭取或儘可能少的對象?

有小對象的替代方案是一個較大的對象,簡而言之,它們說的是相同類型的對象,但是其中一半有一個字段,另一半不是IE爲什麼我想將它分成兩個對象以避免有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日期時間1 int和1字符串 –

+0

通過查看您的代碼,你是在正確的方向。你也可能想要實現抽象類中的一些方法,比如'toString'和'type'的getters/setters。如果需要的話,你會覆蓋它們。不是每次創建子類。 – Tala