玉傢伙,的Java添加靜態方法,類
這裏有一個問題比事實更原則。
我有一個在客戶端和服務器上使用的數據結構。
但是,在服務器端,我想要從某種數據存儲創建客戶端的功能(目前SQL,它曾經是序列化數據,但沒關係)。
本來我有一個巨大的類叫'數據存儲',它有靜態方法來檢索任何存儲的對象。
雖然不可怕,但這不完全是面向對象,並且它不是完全可擴展的。
所以我考慮將這些靜態方法本身移到數據結構中。但是,這意味着共享客戶端庫會知道如何從數據存儲中檢索對象 - 這很愚蠢。
所以我現在正在爲一個新的數據存儲包中的每個對象創建新的類,每個對象都包含從數據存儲中檢索一個對象的靜態方法。
我的問題是,我如何表示這些數據管理器類和它們檢索的對象之間的關係?
從功能上說,沒關係。靜態方法工作正常。但是我想向未來的我和其他未來的開發者表明,數據檢索器類和對象類緊密相關。
我的第一個想法是讓數據檢索器擴展數據結構。然而,這將需要聲明默認的構造函數,並暗示該類可以被實例化 - 它可以,但爲什麼?
我的第二個想法是,然後讓數據檢索器擴展數據結構,但要抽象。這將標誌着與其他開發者的緊密關係,並且明確表示只有新的方法被添加,沒有新的領域。
但是,用抽象類擴展具體類看起來很奇怪,Java仍然讓我創建了默認構造函數。
考慮到這裏的問題,再次考慮這個問題,記住艾略特的報價: 「我們不會停止探索// 而我們所有探索的終點// 將會到達我們開始的地方// 並且第一次知道這個地方。」 – Alex