關於一個建立型模式的討論:
關於一個建立型模式的討論:
我在構造一個web framework時,定義action其實就是struts的action,
當然他也是command模式。我在建立它時使用以下模式,
目前假設有兩個action
public class loginAction extends action{
}
public class logoutAction extends action{
}
當初我使用了簡單工廠方法,根據請求的urlpath動態建立,
public class actionFactory{
public static action(string urlpath){
if (urlpath.equal("")){
return loginAction();
}else if (urlpath.equal("")){
return logoutAction();
}
}
}
這個工廠方法,每次都建立新的action,效能不好,我們希望香struts一樣使用cache,
於是我們改為,可以使用每次建立新的action,也可以使用cache建立,並且可以配置,
甚至客戶可以二次開發,實現自己的工廠方法,只需實現一個介面,如下:
//定義建立介面
public interface actionFactory{
public action(string urlpath);
}
//每次都建立新的action
public class newActionFactory implements actionFactory{
public action(string urlpath){
if (urlpath.equal("")){
return loginAction();
}else if (urlpath.equal("")){
return logoutAction();
}
}
}
//使用cache建立模式。
public class cacheActionFactory implements actionFactory{
Hashmap cache=new HashMap();
public action(string urlpath){
if (urlpath.equal("..")){
if(cache.get("..')){
return (Action)cache.get("..')
} else{
Action obj=new loginAction();
cache.put("",obj );
retunrn obj;
}
}else if (urlpath.equal("")){
//省略
}
}
}
這樣我們提供一個配置檔案,客戶可以動態決定使用那種工廠方式,來建立action,
如下:
actionFactory=cacheActionFactory;
這種方式我使用了,現在我不知道,這到底屬於那種模式,
是工廠方法,還是抽象工廠,它們都不像??
我認為是 工廠方法,但是有的同時認為,不是?
可以參考設計模式的73頁,引數化工廠方法??
大家可以討論?
相關文章
- oracle 關於例項恢復的一個討論Oracle
- 一個關於月球車的筆試題--求討論筆試
- 關於oracle SCN 的討論Oracle
- 關於BSS資料化轉型的幾點討論
- 關於UI的一次討論——來自專案管理群的討論UI專案管理
- [技術討論]關於低耦合開發的討論
- 關於 Angular 裡 module 和 Component 包含粒度的一個討論Angular
- 關於多型實現Singleton模式的探討 (轉)多型模式
- 關於隱式型別var使用最佳實踐的討論型別
- 關於aio的設定的討論AI
- 關於網站設計的一點點討論網站
- 關於ora_pz程式的一些討論
- 關於部落格評論外掛的討論
- 關於神經網路的討論神經網路
- 關於rails和Grails的效能討論AI
- 關於HTTP中文翻譯的討論HTTP
- 關於業務元件相關架構的討論元件架構
- 關於模式爭論的一點點思考模式
- 關於 WebRTC API navigator.mediaDevices.getUserMedia 返回型別的討論WebAPIdev型別
- 討論關於Constraint statesAI
- 關於string.Empty & "" & null 的討論Null
- 關於專案經理的討論 (轉)
- 關於分類的線性模型的討論模型
- 關於PHP中的警告資訊和session的一些討論PHPSession
- 一個關於組織學員學習技術的筆試題--求討論筆試
- 討論:關於The REBIND utility and the FLUSH PACKAGE CACHEPackage
- 關於jive開發論壇的一些討論-winCVS安裝(整理)
- 關於檔案寫入的原子性討論
- 關於HTTP中文翻譯的討論之二HTTP
- 關於程式設計風格的討論 (轉)程式設計
- 一起討論一個BSTR型別轉換問題 (轉)型別
- 關於國內技術類書籍的一次討論
- 一個關於prototype模式的問題?模式
- 關於 Angular 應用 Module 的 forRoot 方法的討論Angular
- 直接路徑插入模式的一些討論模式
- 我們現在沒有討論的但有必要討論的模式模式
- J2EE相關設計模式討論設計模式
- 《快速排序》引發關於演算法的討論排序演算法