我做的一项目是这样的
BO:
  public static DataTable QueryAll()
        {
            try
            {
                IBillPayerDAO assDAO = DALFactory.CreateBillPayerDAO();
                return assDAO.QueryAll();
            }
            catch (Exception ex)
            {
                throw new Exception(ex);
            }
        }
DALFactory:
   public static IBillPayerDAO CreateBillPayerDAO()
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
    
            return (IBillPayerDAO)assembly.CreateInstance("GFMIS.FS.DAL.BaseData.BillPayerDAO");        }我知道这是工厂模式,哪位给详细解释一下?
1。GetExecutingAssembly()作用
2。为什么用接口的对象。
3。更详细的解释最好

解决方案 »

  1.   

    是不是直接从BO调用接口里的方法就可以了,为什么还要加一层工厂,好处在哪?
    Assembly怎么用?
      

  2.   

    GetExecutingAssembly 反射工厂模式既然知道就应该知道接口和数据库的屏蔽了~
      

  3.   

    Assembly采用反射机制,动态加载dll创建类实例,用接口来接受类实例,应用了多态性,
    利于将来程序的扩展,,同时限制操作,
      

  4.   

    我也看过这样的程序。但是这样把实现类都打包成了Dll,那以后换实现来也不好换呀。
    还是采用Spring.net通过配置走好。
      

  5.   

    Assembly.GetExecutingAssembly();
    获取包含当前执行的代码的程序集
    return (IBillPayerDAO)assembly.CreateInstance("GFMIS.FS.DAL.BaseData.BillPayerDAO")
    通过反射取得Data层BillPayerDAO类的实例在反射工厂模式中用接口起规划调用方式的作用。
    详细工厂模式的使用上下文情况和具体说明请搜一下.Net设计模式说明。