根据传参的不同加载不同的数据(从数据库获取的)绑定到界面上
我想写一个公共的方法,这样也便于维护,
我自己写了一个,如下
Public void LoadData(DataTypeEnum dataType)
{
   stwich(dataType)
{
    case 1:
    List<Class1> lstUser=GetClass1List();
    //绑定到界面
    break;
    case 2:
    List<Class2> lstClass2=GetClassList();
    //绑定到界面
    break;
}
}这个方法感觉不大好,如果数据多了这个方法会很难维护,请大家帮我出出主意,有什么更好的办法吗 ?

解决方案 »

  1.   

    LoadData只负责返回数据集,绑定放到窗体中绑定
      

  2.   


    Public void LoadData(DataTypeEnum dataType)
    {
      List<Class1> lstUser;
      stwich(dataType)
    {
      case 1:
      lstUser=GetClass1List();
       break;
      case 2:
      lstUser=GetClassList();
      break;
    }
     //绑定到界面}
    尽量去除重复的代码
      

  3.   

    每次返回的是不同对象的List
    可能是List<User> 也可能是List<rights>
    但是我每次都只是取每个对象里面的Id和Name的值
      

  4.   

    每次返回的是不同对象的List
    可能是List<User> 也可能是List<rights>
    但是我每次都只是取每个对象里面的Id和Name的值
      

  5.   


    数据绑定不需要用到泛型,因此方法的返回值可以是一个object[],这样就可以统一起来了啊。
      

  6.   

    声明一个基类baseClass,只有Id Name的字段,和处理函数process,然后User和rights继承这个基类,并重载处理函数
    甚至我觉得基类的id name都可以不需要,定义成接口就行了处理的时候,根据dataType来定义基类baseClass bc = new User();最后,直接调用bc.process()
      

  7.   

    这个设计其实违反了面向对象设计的要求的,switch语句会根据需求的变更一直修改。
    建议如果是这样的设计可以先了解下设计模式:工厂模式或者策略模式。
      

  8.   

    貌似这个方法没有解决楼主的问题,如果LoadData方法只返回数据集,如果返回数据集,我还是得通过
    开关语句进行判断。
      

  9.   

    若是楼主每次都提取ID和NAME属性,可以去除开关语句,也就是说不需要进行判断了。
    直接写一个方法,传参ID和Name,根据参数拼写SQL语句,从数据库读取就可以了。
    然后绑定。相信可以帮助你。