![](/img/trans.png)
[英]Is it a good idea to use static helper classes in Play Framework 2?
[英]Is it a good idea to merge all helper classes into one gigantic class?
在開發軟件時,我趨向於發現自己創建了大量的ThingyHelper.java,FooHelper.java,BarHelper.java等。在我進行的當前項目中,有大約40多個類看起來像這樣:
public final class FoobarHelper {
// Prevent instantiation
private FoobarHelper() {throw new AssertionError();}
public static void doSomething() {}
public static int foobar() {}
// And many more
}
我的問題是:將所有這些類合並到一個巨大的Helper.java類中是個好主意嗎? 環顧四周,似乎沒有關於該主題的文章。 我的看法是:
我應該這樣做,因為:
是否有關於幫助程序類的約定,否則,這將是一個糟糕的主意嗎?
我認為您的問題不是這些類太多了,而是您完全需要這些類。
面向對象的核心思想是將功能和數據合並到對象中,然后這些對象代表您的程序流。 在不了解您的應用程序的情況下,實用程序類建議您使用無生命的Bean類,然后由服務功能層對其進行處理。 這是過程編程的標志,而您不想使用Java來實現。
除此之外,沒有理由合並您的實用程序方法。 因此,我對您的問題回答“ 否” 。 實用程序類有一些合法用途,例如Java的Math
, Collections
類(那些也更適合作為對象方法,但語言限制/限制了這種定義),您可能只遇到了其中一個。 請注意Java如何決定按其語義對此類實用程序方法進行分組。 在一個名稱空間中定義實用程序方法是有意義的,這樣,當您僅鍵入類時(在這種情況下,它並不代表真正的類,而是一個函數名稱空間),IDE可以幫助您選擇一個函數。 最后,這是找到平衡。 如果每個類只有一個實用程序方法,那么其他人就很難找到這些方法,因為他們需要知道類的名稱。 如果只有一個實用程序類,則可能無法找到所有提供的功能。 將實用程序類考慮為導航助手(名稱空間)的一種形式,然后決定您認為直觀的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.