請教benq大哥strategy模式在實際中的一個應用
mvc結構中,向資料庫中匯入檔案時,需要針對table來匯入,先考慮簡單的情況,即一個檔案只對應一個表。
現有四個檔案,分別要匯入四個表格中(他們的欄位不同),這時就表示要有四種不同的方法來分別處理四個不同的表格。
按照strategy模式的邏輯,可以將四種不同的處理表格的方法分別包裝到四個類中,暫且分別叫他們StuModel, TchModel, EntModel, FamiModel,然後為這四個類抽象出一個介面,名為Model,然後在ImportExcel中使用類似如下的程式碼使用Model類:
public class ImportExcel{
private Model=null;
ImportExcel(Model aModel){
Model=aModel;
}
public doImport(){
……
}
……
}
我有幾個問題,
第一個問題是,我不確定我對strategy模式的理解準不準確,使用的是不是正確。
第二個問題是,在這種情況中使用strategy模式有沒有問題。
第三個問題是,strategy模式是用來方便的更換演算法的,通常來說是根據使用者的不同需要,跟使用者進行互動,由使用者來選擇一種演算法,比如說gui上使用一個下拉選單,上邊列出了若干演算法,這個時候確定按鈕中應該如何處理使用者在下拉選單中的選擇,建立不同型別的Model?(下拉選單中通常傳回的是String吧?不知有沒有方法直接傳回相應的Model類,JComboBox在列表中顯示時是呼叫Objct.toString()來顯示add()到其中的Object嗎?)我猜是使用Class.forName(),不知對不對:)
第四個問題是,如果在沒有使用者互動的情況下使用strategy模式有什麼優勢。
問題多了點,而且很初級,請不吝賜教,謝謝了先。
現有四個檔案,分別要匯入四個表格中(他們的欄位不同),這時就表示要有四種不同的方法來分別處理四個不同的表格。
按照strategy模式的邏輯,可以將四種不同的處理表格的方法分別包裝到四個類中,暫且分別叫他們StuModel, TchModel, EntModel, FamiModel,然後為這四個類抽象出一個介面,名為Model,然後在ImportExcel中使用類似如下的程式碼使用Model類:
public class ImportExcel{
private Model=null;
ImportExcel(Model aModel){
Model=aModel;
}
public doImport(){
……
}
……
}
我有幾個問題,
第一個問題是,我不確定我對strategy模式的理解準不準確,使用的是不是正確。
第二個問題是,在這種情況中使用strategy模式有沒有問題。
第三個問題是,strategy模式是用來方便的更換演算法的,通常來說是根據使用者的不同需要,跟使用者進行互動,由使用者來選擇一種演算法,比如說gui上使用一個下拉選單,上邊列出了若干演算法,這個時候確定按鈕中應該如何處理使用者在下拉選單中的選擇,建立不同型別的Model?(下拉選單中通常傳回的是String吧?不知有沒有方法直接傳回相應的Model類,JComboBox在列表中顯示時是呼叫Objct.toString()來顯示add()到其中的Object嗎?)我猜是使用Class.forName(),不知對不對:)
第四個問題是,如果在沒有使用者互動的情況下使用strategy模式有什麼優勢。
問題多了點,而且很初級,請不吝賜教,謝謝了先。
相關文章
- 策略模式在實際業務中的應用模式
- 策略模式在業務中的實際應用模式
- 策略模式解析以及在Android中的實際應用模式Android
- Linux在實際中的應用Linux
- 策略模式在應用中的實踐模式
- 設計模式在vue中的應用(一)設計模式Vue
- 觀察者模式的實際應用模式
- 並查集在實際問題中的應用並查集
- Nuxt配合Node在實際生產中的應用UX
- 在實際應用中聯合體union的妙用
- Java Volatile的一個實際應用場合Java
- MVC模式在Java Web應用程式中的實現MVC模式JavaWeb
- 在事件中實現 佇列的時候報錯請教一下事件佇列
- 請教一個問題,
- Google Guava 在實際場景中的應用封裝GoGuava封裝
- 設計模式在 TypeScript 中的應用 – 策略模式設計模式TypeScript
- sklearn中的pipeline實際應用
- GlusterFS在Kubernetes中的應用實戰(一)
- iNeuOS工業網際網路平臺,在高校教學實訓領域的應用
- [Elasticsearch] ES 的Mapping 設計在實際場景中應用ElasticsearchAPP
- 請教一個struct tag的問題Struct
- 好用的Vue狀態管理模式:淺談Vuet在實際應用中解決的問題Vue模式
- 結構struct(值型別)在實際應用中應該注意的點Struct型別
- 設計模式在vue中的應用(七)設計模式Vue
- 設計模式在vue中的應用(六)設計模式Vue
- 設計模式在vue中的應用(三)設計模式Vue
- 設計模式在vue中的應用(二)設計模式Vue
- 設計模式在vue中的應用(四)設計模式Vue
- 設計模式在vue中的應用(五)設計模式Vue
- 責任鏈模式在 Spring 中的應用模式Spring
- Map-Reduce 思想在 ABAP 程式設計中的一個實際應用案例程式設計
- Command 模式在 SAP Spartacus 中的具體應用一例模式
- 實習生用mybatis的一個弱智問題硬控大哥半小時MyBatis
- 請教一個go切片引用的問題Go
- SAP Cloud for Customer裡一個Promise的實際應用場合CloudPromise
- 設計模式之--策略模式及其在JDK中的應用設計模式JDK
- 文件驅動開發模式在 AIMS 中的應用與實踐模式AI
- 設計模式 - 命令模式詳解及其在JdbcTemplate中的應用設計模式JDBC
- 請教一個 python 包安裝的問題Python