說我有兩種類型:一個子類上計算值的最佳設計模式?
ClassA
{
int ValueA;
int CalculatedA;
}
ClassB
{
int ValueA;
int CalculatedA;
int ValueB;
int CalculatedB;
}
CalculatedB
需要ValueA
以及ValueB
。我正在試圖確定實現這一目標的最佳模式。
選項1:子類ClassA
並添加額外的值。在子類中有一個常用的Update()
方法。這是模型中的簡單代碼,但創建這些類的代碼需要事先知道要創建哪些代碼,並且任何遍歷這些類型列表的代碼都需要進行類型檢查來處理額外的字段。
選項2:在單獨的類中有額外的屬性,並且在那裏有更新代碼CalculatedB
。這個問題是,ClassB
然後需要知道什麼時候ValueA
更新,我希望不必在這些類上實現像INotifyPropertyChanged
類似的東西。另一種方法是在額外的屬性類上使用某種公共的Update方法,並在ValueA
更新時讓主類調用該方法。也不可取。
方案3:只要有ClassB
與ValueB
和CalculatedB
是可空類型。通過。
還有嗎?你會選擇哪一個?
我不是一個網絡小傢伙。這裏有沒有使用朋友類的東西的可能性? – vrbilgi
雖然朋友會提供幫助,但它與公開內部方法或制定者的問題仍然相同,只是公衆是一個較小的組合。 –