badqiu

          XPer
          隨筆 - 46, 文章 - 3, 評論 - 195, 引用 - 0
          數(shù)據(jù)加載中……

          系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)

          應(yīng)用系統(tǒng)的開發(fā)經(jīng)常有參數(shù)動態(tài)刷新的問題,一般的方案會比較復雜,其實只要保持一個原則: 保持類的無狀態(tài),那么動態(tài)刷新參數(shù)是一簡很簡單的事情. 舉下面這個例子.

          將我們原來的代碼:

          //我們有很多類似這樣的UserSerive類,每個類都維護自己的狀態(tài),每個類的屬性都需要動態(tài)刷新
          public
           class UserService {
              
          private String username; //現(xiàn)username為實例屬性,刷新會十分麻煩
              public void setUsername(String v) {
                  
          this.username = v;
              }
              
              
          public void doSomeThing() {
                  loadUserDetail(username);
              }
              
          }

          username是一個需要更新的系統(tǒng)參數(shù),而UserSerivce存在spring容器中將username變量注入進來。 那么如果username這個參數(shù)需要更改的話會比較麻煩

          修改為無狀態(tài)的類:

          public class StateLessUserService {
            
          private Properties properties; //該properties為系統(tǒng)全局共享,這樣內(nèi)部進行參數(shù)的刷新,,將會十分方便  

            
          public void doSomeThing1() {
              
          //實現(xiàn)1: 全局的properties
              loadUserDetail(properties.getProperty("username"));
            }

            
          public void doSomeThing2() {
              
          //實現(xiàn)2: 靜態(tài)方法得到配置,由Config統(tǒng)一維護參數(shù)
              loadUserDetail(Config.getProperty("username"));
            }
          }

          如實現(xiàn)2,現(xiàn)我們使用一個統(tǒng)一的Config類得到配置參數(shù),只需要刷新該類,那與username類似的配置參數(shù)都可以立即修改。

          如上描述: 只要我們的類無狀態(tài),那么想要動態(tài)刷新參數(shù)是十分簡單的一件事.

          再描述一個原則:

          既然可以用如此簡單的方法達到我們的目的,為何要搞出那么復雜的方案. (簡單就是美)

          posted on 2010-05-25 00:43 badqiu 閱讀(2037) 評論(5)  編輯  收藏

          評論

          # re: 系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)  回復  更多評論   

          你在說什么?沒看懂
          2010-05-25 09:23 | 咖啡妝

          # re: 系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)  回復  更多評論   

          不知所謂???
          2010-05-25 09:50 | Andyson

          # re: 系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)  回復  更多評論   

          難道沒有描述清楚,意思如果 username是一個需要更新的系統(tǒng)參數(shù),而UserSerivce存在spring容器中將username變量注入進來。 那么如果username這個參數(shù)需要更改的話會比較麻煩
          2010-05-25 10:30 | badqiu

          # re: 系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)  回復  更多評論   

          這個思想還是不錯的... 具體要看用到哪里。
          2010-05-25 10:58 | fantasy

          # re: 系統(tǒng)參數(shù)的動態(tài)刷新,只需一個原則:保持類的無狀態(tài)  回復  更多評論   

          lz從哪里學的?不錯
          2010-05-25 21:48 | Jie

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 扶绥县| 上栗县| 德化县| 沭阳县| 虎林市| 剑河县| 泰州市| 高台县| 康平县| 沭阳县| 汤阴县| 永新县| 厦门市| 靖宇县| 修水县| 长岛县| 清徐县| 婺源县| 新郑市| 保德县| 延寿县| 巴里| 齐齐哈尔市| 江永县| 象山县| 太仓市| 营山县| 宝应县| 鄯善县| 崇信县| 翁牛特旗| 广元市| 临泽县| 陵川县| 赫章县| 尼勒克县| 奎屯市| 高雄市| 容城县| 永年县| 呼玛县|