2013-10-13 33 views
1

我正在研究解析HTML和生成RDF的Java類(我認爲我最終將分爲兩個類 - 一個用於解析,一個用於生成RDF)。適合放入util類的方法?

目前我創造了很多的檢查HTML數據,並將其轉換成更均勻的表示方法。目前爲止我創建的一些方法如下:

public boolean isInteger(String str) { } 
public boolean isTime(String str) { } 
public boolean isDate(String str) { } 
public String dateConverter(String[] date) { } //Converts a Norwegian date into mmddYYYY 

我應該將這些方法放入util類嗎?目前他們只被這個特定的班級使用,但我認爲他們可能需要在稍後的時間點使用這些班級。

+0

爲什麼不..你有更具體的問題嗎? – 2013-10-13 18:56:07

+0

不,不是真的,我想我只是想知道我是否將這些方法放入utils類的想法是正確的。我想要更好地使用我的OOP技能! – Jea

回答

3

嗯,是的,你列出的方法看起來很好的候選人在一個實用程序類public static方法。 (例如,最後的2或3會很好地適合名爲「DateUtils」的類)。

當然,如果只在一個地方使用它們,那麼它們仍然可以保留「私人助手」,但只要你有多個地方使用它們,一個util類是有意義的。

編輯:靜態方法過度使用可能有問題,但我認爲這些方法很可能是靜態的utils的,因爲他們是pure functions

+0

+1有關純功能的解釋 – Jea

+0

這不僅僅是私人助手的問題,也是一個可測性的問題...... – Rich

1

它們似乎足夠適合放入util類。至少我會。基本上任何在代碼中分析字符串的類都需要使用這些方法。爲了避免不必要的構建,我會在將它們添加到類中之前將它們設置爲靜態。

分解是一個很好的習慣。如果您不確定是否需要使用它們,請繼續操作。它會給你練習使用工具類。

0

,如果你最終想要他們分成兩班,你可能要定義的基類的接口或抽象類。

根據您的要求,抽象類應該是正確的選擇。 從子類到抽象類有一些共同點(你可以在抽象類中實現方法)

來自另一個答案,我想問一個問題? 答案建議把靜態放在方法的前面以避免不必要的構造,這很有道理。

我知道抽象類不需要被實例化來調用它的方法。 它也可以避免施工。

有問題嗎? 哪種方式更合理?或更好?或者一樣。

1

這是一個很好的做法,以收集在一個這樣的方法實用程序類。即使他們目前只從一個類中調用,這些類型的方法也可能會被其他客戶重複使用。

但是,你一定要注意讓這個工具類容易被重用。爲此,方法簽名,實際上它們的參數,必須儘可能通用。他們不應該針對一個班級採取具體的輸入。

我的另一個建議是將這個工具類分成多個類,如果它開始包含許多不連貫的方法。您可以通過將相關方法分組在單獨的類中來完成此操作。例如,您編寫的方法可以移動到TypeUtils類,您可以收集例如Html2RdfUtils類中與轉換相關的方法。

最後,如果您覺得這些實用工具類可以有益於您的其他項目,可以將它們收集到不同的庫中。