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)刷新的問題,一般的方案會比較復(fù)雜,其實只要保持一個原則: 保持類的無狀態(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ù)是十分簡單的一件事.

          再描述一個原則:

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

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

          評論

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

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

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

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

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

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

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

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

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

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 绥阳县| 华坪县| 肥西县| 舟曲县| 响水县| 镇坪县| 嵊泗县| 青龙| 洪泽县| 两当县| 陵水| 富锦市| 龙岩市| 榆林市| 瑞安市| 习水县| 黄梅县| 绍兴市| 大庆市| 汾西县| 满城县| 庆城县| 灌阳县| 湖口县| 顺义区| 竹溪县| 南昌县| 平安县| 忻城县| 建湖县| 剑川县| 北流市| 石景山区| 定南县| 聂拉木县| 新竹县| 安吉县| 柘荣县| 洪江市| 龙陵县| 黔西县|