這可能是一個古老的問題,我相信每個人都有自己的方式。 假設我有一些屬性定義,如java屬性 - 暴露還是不暴露?
secret.user.id=user
secret.password=password
website.url=http://stackoverflow.com
假設我有100個不同的階級和我需要使用這些屬性的地方。 哪一個很好 (1)我創建了一個Util類,它將加載所有屬性並使用鍵常量來提供它們。 Util是一個加載所有屬性並保持getInstance
Util myUtil = Util.getInstance();
String user = myUtil.getConfigByKey(Constants.SECRET_USER_ID);
String password = myUtil.getConfigByKey(Constants.SECRET_PASSWORD);
..
//getConfigByKey() - inturns invokes properties.get(..)
doSomething(user, password)
所以無論我需要這些屬性,我都可以執行上述步驟。
(2)我創建了一個有意義的類來表示這些屬性;例如, ApplicationConfig並提供getter來獲取特定的屬性。 所以,上面的代碼可能看起來像:
ApplicationConfig config = ApplicationConfig.getInstance();
doSomething(config.getSecretUserId(), config.getPassword());
//ApplicationConfig would have instance variables that are initialized during
// getInstance() after loading from properties file.
注:屬性文件因此將在未來只有輕微的變化。
我個人的選擇是(2) - 讓我聽聽一些評論?
無論如何您不會緩存屬性,所以如果您在幾個不同的地方加載它,性能會受到影響嗎? – willcodejavaforfood 2010-03-04 17:09:10
爲什麼使用鍋爐板?我不這是一個很好的建議。 另請注意,我用程序設計標記了這一點。我喜歡代碼運行良好,並且能夠很好地閱讀。 – 2010-03-04 17:12:24