蔷薇部落 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了。