日期:2014-05-20  浏览次数:20928 次

关于三层结构,达人进,谢谢!
我做的一项目是这样的
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。更详细的解释最好

------解决方案--------------------
我也看过这样的程序。但是这样把实现类都打包成了Dll,那以后换实现来也不好换呀。
还是采用Spring.net通过配置走好。
------解决方案--------------------
Assembly.GetExecutingAssembly();
获取包含当前执行的代码的程序集
return (IBillPayerDAO)assembly.CreateInstance( "GFMIS.FS.DAL.BaseData.BillPayerDAO ")
通过反射取得Data层BillPayerDAO类的实例

在反射工厂模式中用接口起规划调用方式的作用。
详细工厂模式的使用上下文情况和具体说明请搜一下.Net设计模式说明。