最近刚完成一个利用“工厂模式”设计的项目,总是感觉不到这种工厂模式的优点在哪?请大家多都教诲。此项目的架构图如下:

工厂,我的理解是在一个独立的厂房内,可以生产出整个项目都用到的方法,它起到上接BLL层,下衔IDAL层的作用。
SQLDataFactory主要代码:
private static object CreateObject(string className)
        {
            string fullClassName = SQLData_Lib + "." + className;
            object dataComponent = CacheAccessor<object>.GetFromCache(className);
            if (dataComponent == null)
            {
                dataComponent = Assembly.Load(SQLData_Lib).CreateInstance(fullClassName);
                CacheAccessor<object>.SaveToCache(className, dataComponent);
            }
            return dataComponent;
        }
注:采用Factory模式+发射机制+缓存机制实现。
public static IDAL.ISystemUser CreateSystemUser()
        {
            try
            {
                return (IDAL.ISystemUser)CreateObject("SystemUserSqlDataProvider");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
注:后台账号数据及操作访问接口。
BLL层主要代码:
private static readonly IArea AreaDAL = SQLDataFactory.CreateProvinceCity();
注:创建接口对象,目的是调用继承接口的DAL层中对应的类。实现的方法是:调用工厂DataFactory中的静态方法。
SQLDataDAL主要代码:
此层中并没有特殊的代码,就是一般的增删改查的SQL语句。
我们在调用哪个方法时,直接调用BLL层中的静态方法,即可完成。
项目做完了,回头想想,感觉这种工厂模式的优势不是很明显呢?请大家多多指教。。。。。。!小弟不胜感激。
                    
                
                
            
        
浙公网安备 33010602011771号