2011-01-27 82 views
0

我的Java項目中有兩個類不相互關聯(一個是從線程繼承而來的,另一個是自定義對象,但它們都需要使用相同的函數,它需要兩個字符串參數,並執行soem文件寫入的東西,我最好把這個函數放在哪裏?代碼複製是醜陋的,但我也不想爲這一個函數創建一個全新的類。我有我缺少一個很明顯的方式在這裏做到這一點的感覺,但我想不出一個簡單的方法。在兩個不相關的Java類中使用函數

回答

1

[功能],這需要兩個字符串參數並執行SOEM文件寫入東西

正如其他人所建議的,可以放置在一個單獨的類,它的功能,無論是現有的類可以,然後訪問。其他人建議調用類Utility或類似的東西。我建議而不是以這種方式命名課程。我的反對意見是雙重的。

  • 你會期望你的程序中的所有代碼都是有用的。也就是說,它有實用程序,所以這樣一個名稱沒有傳達關於該類的信息。
  • 可能會認爲Utility是一個合適的名稱,因爲該類別是被其他人利用了。但在這種情況下,名稱描述的是使用的,而不是。班級應該按照他們所做的來命名,而不是如何使用它們,因爲他們如何使用它們可能會改變,而不會改變它們。考慮Java有一個string類,它可以用來保存名稱,描述或文本片段。班級用「一串字符」來做事情;它可能會或可能不會用於名稱,所以string是一個很好的名字,但name不是。

所以我建議爲該班級設置一個不同的名稱。描述它對文件進行的操作類型或描述文件格式的東西。

1

創建一個Utility類,並把所有常見的實用方法在裏面。

+0

寫入整個字工具將不僅僅是的Util更好,但概念的同 – mauris 2011-01-27 13:07:13

0

您可以在其中一個類中使函數靜態,然後在另一個類中引用靜態方法,前提是沒有使用要求該對象已經實例化的變量。

或者,創建另一個類來存儲所有類似的靜態方法。

1

聽起來像只有靜態函數的FileUtils類的理想候選人。看看SwingUtilities看看我在說什麼。

0

回答你的問題的第一部分 - 就我所知,在java中不可能具有獨立的功能;人格 - 功能必須進入課堂。

第二部分更有趣 - 實用類是一個好主意。更好的想法可能是擴展KitsuneYMG寫的東西;讓你的班級爲自己的閱讀/寫作負責。 然後將讀/寫操作委託給實用程序類。這允許您獨立於其他文件操作來操作您的讀/寫操作。

只是我2C(+:

相關問題