zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0

          今天早上公交車上想到的系統(tǒng)的實現(xiàn)模式

          ?

          ?

          Author ???? :????? zhyiwww

          E-Mail ????? :????? zhyiwww@163.com

          Date ????????? :????? 2007-1-16

          轉(zhuǎn)載請注明出處 (copyright by @ zhangyi)

          ?

          ?

          ?

          今天早上去上班的時候,在公交車上,我想了一下我們的一部分的實現(xiàn)方案。

          我們有一個對象 User ,定義如下:

          public class User{

          ?????? name;

          ?????? password;

          ?

          ?????? set***

          ?????? set***

          ?????? get***

          ?????? get***

          }

          這是一個單獨的 bean

          因為我們再傳遞密碼的時候是需要加密和解密的。

          但是,我們的加密和解密方案可能是會改變的。

          那么我們?nèi)绾蝸韺崿F(xiàn)呢?

          所以我就想,我可以用一個靈活的,可擴展的方案來實現(xiàn)。

          ?

          我聲明了一個接口:

          Public interface Security{

          ?????? // 加密

          ?????? Void Encrypt();

          ?????? // 解密

          Void crack();

          }

          我讓上面的 bean 來實現(xiàn)此接口:

          public class User? implements Security {

          ?????? name;

          ?????? password;

          ?

          ?????? set***

          ?????? set***

          ?????? get***

          ?????? get***

          ??????

          ?????? // 加密

          ?????? Void Encrypt(){

          }

          ?????? // 解密

          Void crack(){

          }

          ?

          }

          在此,我們可以看到,加密解密的部分,我們是要自己去實現(xiàn)的。

          但是,實現(xiàn)對數(shù)據(jù)的加密和解密還是要去調(diào)用這個方法。

          所以我們在其初始化的時候就實現(xiàn)加密:

          ?

          public class User? implements Security{

          ?????? name;

          ?????? password;

          ?

          ?????? public User(String username,String password){

          ?????? this.name=username;

          ?????? this.password=password;

          ?????? // password 進行加密

          encrypt();

          }

          ?????? set***

          ?????? set***

          ?????? get***

          ?????? get***

          ??????

          ?????? // 加密

          ?????? Void Encrypt(){

          }

          ?????? // 解密

          Void crack(){

          }

          ?

          }

          ?

          但是加密如何實現(xiàn)呢?我們加密可能會采用不同的方案。

          那么一種方案是 ,我們可以給沒有一個方案單獨的創(chuàng)建類,然后去實現(xiàn)加密和解密的方法。

          這種方案,我們在實現(xiàn)的時候,使用哪一種方案都要去修改所有的方案,去實現(xiàn)對應(yīng)的代碼。可能工作量很大。

          另一種方案就是 ,使用工廠。

          我們使用工廠來決定和實現(xiàn)使用哪種方案。然后我們重建不同的方案來實現(xiàn)其功能。

          可以通過配置,來決定使用哪種方案。這樣,我們的系統(tǒng)的自由度就大了很多了。

          至于工廠詳細如何實現(xiàn),在此我就不多說了。



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2007-01-16 11:35 zhyiwww 閱讀(1520) 評論(0)  編輯  收藏 所屬分類: j2ee
          主站蜘蛛池模板: 周宁县| 政和县| 九江县| 阿拉善左旗| 平泉县| 惠东县| 怀集县| 龙州县| 江达县| 友谊县| 洛阳市| 吉水县| 靖西县| 正宁县| 伊宁县| 永宁县| 普安县| 叙永县| 兖州市| 遂溪县| 常山县| 贺兰县| 桃源县| 满洲里市| 东乡族自治县| 内丘县| 巫山县| 桐乡市| 威远县| 安远县| 阆中市| 南昌市| 涡阳县| 宝坻区| 疏附县| 巨野县| 霍州市| 大悟县| 友谊县| 固镇县| 邹城市|