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

工厂,我的理解是在一个独立的厂房内,可以生产出整个项目都用到的方法,它起到上接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号