假設人們有一個像Person這樣的類,它在Setting類中實現了一些默認設置。這些設置可能是諸如「默認標題」或「需要名字」之類的東西。相應地,像Address類的其他類也可能有一些默認設置。 Setting類將每個設置保存到持久存儲中。靜態方法或OO替代方法?
應該在每個類中實現一個靜態方法,如包含這些設置的「SetDefaults()」,以便外部方法可以針對每個對象類型調用SetDefaults()?例如Person.SetDefaults()然後Address.SetDefaults()?
或者是否有一些更好的面向對象的方式來做到這一點?
[更新:這不可能是在構造因爲SetDefaults()應該從外部類在特定時間點被調用,而不是每一個對象被構造時間]
我認爲你需要解釋SetDefaults的行爲 - 如果當一個對象被超過的IoC構建這些默認值都是隻讀/工廠顯然是一個好答案。如果預計在施工後使用時會出現重置或其他狀態變化的影響,那麼我認爲Mark的擴展建議是最好的答案,但我真的質疑當時的設計 - 這聽起來像是兩種截然不同的方法。 – annakata 2009-06-03 08:38:28