今天早上公交車上想到的系統的實現模式
?
?
Author
???? :????? zhyiwww
E-Mail
????? :????? zhyiwww@163.com
Date
????????? :????? 2007-1-16
轉載請注明出處
(copyright by @ zhangyi)
?
?
今天早上去上班的時候,在公交車上,我想了一下我們的一部分的實現方案。
我們有一個對象
User
,定義如下:
public class User{
?????? name;
?????? password;
?
?????? set***
?????? set***
?????? get***
?????? get***
}
這是一個單獨的
bean
。
因為我們再傳遞密碼的時候是需要加密和解密的。
但是,我們的加密和解密方案可能是會改變的。
那么我們如何來實現呢?
所以我就想,我可以用一個靈活的,可擴展的方案來實現。
?
我聲明了一個接口:
Public interface Security{
?????? //
加密
?????? Void Encrypt();
?????? //
解密
Void crack();
}
我讓上面的
bean
來實現此接口:
public class User?
implements Security
{
?????? name;
?????? password;
?
?????? set***
?????? set***
?????? get***
?????? get***
??????
?????? //
加密
?????? Void Encrypt(){
}
?????? //
解密
Void crack(){
}
?
}
在此,我們可以看到,加密解密的部分,我們是要自己去實現的。
但是,實現對數據的加密和解密還是要去調用這個方法。
所以我們在其初始化的時候就實現加密:
?
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(){
}
?
}
?
但是加密如何實現呢?我們加密可能會采用不同的方案。
那么一種方案是
,我們可以給沒有一個方案單獨的創建類,然后去實現加密和解密的方法。
這種方案,我們在實現的時候,使用哪一種方案都要去修改所有的方案,去實現對應的代碼??赡芄ぷ髁亢艽蟆?/span>
另一種方案就是
,使用工廠。
我們使用工廠來決定和實現使用哪種方案。然后我們重建不同的方案來實現其功能。
可以通過配置,來決定使用哪種方案。這樣,我們的系統的自由度就大了很多了。
至于工廠詳細如何實現,在此我就不多說了。
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://m.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2007-01-16 11:35
zhyiwww 閱讀(1519)
評論(0) 編輯 收藏 所屬分類:
j2ee