我想知道這種設計是正確的,錯誤的還是兩者兼而有之。
我有一個應用程序與幾個組件(對象),他們每個人都有一個配置(標誌,功能等) 在任何時候,我想檢索對象的配置。
要這樣,我這樣做:動態對象vs單一特定動作
class ConfigRetriever {
public String getConfigString() {
String configString = "";
configString += "component 1 flag : "+component1.getFlag()+"\n";
configString += "component 2 flag : "+component2.getFlag()+"\n";
// ...
return(configString);
}
}
別的地方,當需要配置:
class SomeClass {
public void someMethod() {
ConfigRetriever configRetriever = new ConfigRetriever();
String configString = configRetriever.getConfigString();
// Do some stuff with configString...
}
}
我在對象編程很新,它仍然感覺怪怪的,以創建一個對象(ConfigRetriever)只是一個特定的動作(即使對象能夠做其他的事情)。
我也不過約Singleton模式,有些事情是這樣的:
String configString = ConfigRetriever.getInstance().getConfigString();
這是一個整潔的線,但因爲對象停留在內存中,直到應用程序結束後,我真的不知道是什麼正確和錯誤。
我的設計可能會更好嗎?怎麼樣 ?爲什麼?
UPDATE
謝謝你的回答。我想我的問題有點混亂,我錯過了我所要求的觀點。
整個配置和組件故事在這裏作爲我正在處理的這種情況的一個例子。這是快速和骯髒的代碼,我應該警告你。真正的問題是:「創建一個對象只是一次(或有時)訪問它的一個方法是好事嗎?」 那麼,閱讀你的答案,並再次思考它,似乎正確的答案是「這取決於你的目標,課程,責任等等......」
我想將信息存儲在我的目標中嗎?不能是靜態方法。
使用永久內存的單身人士是一個問題嗎?大部分時間都是這樣,因爲我認爲你必須有一個很好的理由來維護一個具有全局狀態的對象。所以,大部分時間:沒有單身。
最後,創建一個類用於實例化某個對象是否有問題?不是這樣做的! :-)
我在你的問題中沒有看到任何建議單身人士,除了你建議它。似乎缺少一些東西,component1和component2從哪裏來? –