蔷薇部落 2011-12-22
代码如下:
namespace FactoryMethodPattern 
{ 
public interface IProductDAL 
{ 
void Insert(); 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
public interface IProductDALFactory 
{ 
IProductDAL CreateProductDAL(); 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
public class AccessProductDAL:IProductDAL 
{ 
#region IProductDAL 成员 
public void Insert() 
{ 
Console.WriteLine("AccessProductDAL.Insert"); 
} 
#endregion 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
public class AccessProductDALFactory:IProductDALFactory 
{ 
#region IProductDALFactory 成员 
public IProductDAL CreateProductDAL() 
{ 
return new AccessProductDAL(); 
} 
#endregion 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
public class SqlProductDAL:IProductDAL 
{ 
#region IProductDAL 成员 
public void Insert() 
{ 
Console.WriteLine("SqlProductDAL.Insert"); 
} 
#endregion 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
public class SqlProductDALFactory:IProductDALFactory 
{ 
#region IProductDALFactory 成员 
public IProductDAL CreateProductDAL() 
{ 
return new SqlProductDAL(); 
} 
#endregion 
} 
} 代码如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="DALFactory" value="FactoryMethodPattern.SqlProductDALFactory"/> </appSettings> </configuration>
代码如下:
namespace FactoryMethodPattern 
{ 
public class BLL 
{ 
public void Insert() 
{ 
//利用反射实现功能 
IProductDALFactory factory =(IProductDALFactory) Assembly.GetExecutingAssembly().CreateInstance(ConfigurationManager.AppSettings["DALFactory"]); 
IProductDAL pro = factory.CreateProductDAL(); 
pro.Insert(); 
} 
} 
} 代码如下:
namespace FactoryMethodPattern 
{ 
class Program 
{ 
static voidMain(string[] args) 
{ 
BLL product = new BLL(); 
product.Insert(); 
Console.ReadKey(); 
} 
} 
} 
现在这个小系统整体就完成了,现在我要加入Oracel数据库呢?我只要在写两个Oracel数据库的类加到里面,再在app.config中修改一下路径就OK了。