请教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模式有什么优势。
问题多了点,而且很初级,请不吝赐教,谢谢了先。