2017-12-27 901 views
-2

我有一個模塊化的程序我寫的目的是具有完全功能爲與核心程序一起獨立的單元模塊。訪問變量和模塊的方法,在多模塊程序

這就需要程序沒有違反在所有當一個新的模塊被「插入」或去除,並且需要用於該程序編譯和具有或不具有某些模塊執行不改變任何其他代碼。

我的問題是,我應該爲所有模塊中的所有變量設置公共getter和setter,並且公開所有方法,這樣,如果開發人員需要訪問或更改某個模塊中的變量(例如)自己的模塊,他們可以這樣做,而不必更改訪問修飾符,或者我應該重新考慮我的設計?

預先感謝您!

+0

問題不夠清楚,只要我不知道確切不過,我可以給你一些指引,以達到您的要求設計一個模塊化的組件,你做了什麼! – msoliman

+0

@msoliman我沒有做任何事情,我問,這樣我就不必再回去刪除所有我寫。我嘗試使用反射和自定義配置文件,但看到我無處可去,而且我可能會用Java做所有事情。使用公共getter,setter和方法將是一個解決方案,但我想知道是否有更好的方法來解決這個問題。謝謝你的評論! – nanoandrew4

+0

你好,歡迎來到Stack Overflow。這是一個很好的問題,但不是一個好的問題,因爲它非常廣泛。你可能會得到讚譽,但不要灰心:這個網站對某些類型的問題很有幫助(並且對其他類型的敵對)。請花點時間閱讀[幫助頁面](https://stackoverflow.com/help)和其他好問題,以瞭解本網站的用途。 – DavidS

回答

0

我會盡力,只要我需要幫助你回答根據我對你的問題的理解。如果你還需要問什麼,請發表評論,否則不要忘了給我的答案。

訪問修飾符(public, private, etc)是爲了在您的類中實現abstraction and encapsulations而構建的,它們都是面向對象編程的關鍵概念。所以你必須分析你的需求你應該透露什麼或向外界透露特別是如果你想運送你的代碼並在不同系統中使用,並且你不需要其他開發人員來改變某些使用的屬性只是內部例如像database connection string

  • 模塊化,您可以通過接口定義公共功能並實現這些接口。

  • 此外,還有一個原則,它來到我的腦海裏,你應該有利於組成了繼承,以避免大量的代碼更改和休息和依賴性。

  • 依賴注入框架,可以幫助你注入你的模塊,例如Spring框架依賴注入來了。

  • 所有這些原則將實現Open-closeLiscov substitution原則,旨在使它容易和易於擴展和輕鬆擴展您的代碼,並保持您的系統密切修改。現在

它應該來設計你應該構建您的組件連接在一起,它仍然是基於你要求模式,您可以在情況下使用Factory Method例如你有一個廠房內,多種類型的對象。 Strategy,你需要根據用戶activaties在運行時更改的行爲,...等。

答案甚至應該比這個,但是我試圖讓一瞥,你應搜索,並從這裏繼續更長時間。

+0

我更新了我的問題,希望能夠提供更多關於我的問題的詳細信息,但只是要說清楚:假設我有一個核心模塊(運行所有模塊的模塊)和輔助模塊x和y。另一位開發人員出現並希望開發模塊z,但需要從模塊x運行一個方法並從模塊y獲取一些變量。爲了促進這一點,我應該只是將所有內容公開訪問,以便模塊x和y中的所有內容都可訪問,或者我應該讓他們根據他們認爲合適的方式調整其他包中的訪問修飾符? – nanoandrew4

+0

將公開必要的內容並在將來稍後進行調整,以提供更多訪問權限。如果你說有多個客戶,他們中的一些應該有公共財產,而另一個客戶或模塊需要不同的公共財產,使用繼承或組合,併爲每個人自己的類別披露,@ nanoandrew4是否清楚或你仍然困惑 – msoliman

+0

您的評論很清楚,感謝您的快速回復。 – nanoandrew4