PetShop学習ノート(一)のInterface_Factory

3458 ワード

インタフェースクラスライブラリ
IDAL(IOrder)
 
public interface IOrder { string GetOrder(); }
 
2つのオペレーションクラスライブラリ(いずれもIDAL.IOrderインタフェースを実装)
SQLServerDAL(Order)
public class Order:IDAL.IOrder

    {

        #region IOrder  

 

        public string GetOrder()

        {

            return "Order From SQLServer";

        }

 

        #endregion

    }

 
 
 
OracleDAL(Order)
class Order:IDAL.IOrder

    {

        #region IOrder  

        public string GetOrder()

        {

            return "Order From Oracle";

        }

        #endregion

    }

 
 
 
工場クラスライブラリ
DALFactory(Access)
public class Access 
{
public static readonly string path=ConfigurationSettings.AppSettings["DAL"]; public static IDAL.IOrder CreateOrder() { //SQLServerDAL.Order sqlOrder = new SQLServerDAL.Order(); //return (IDAL.IOrder)sqlOrder; string className = path + ".Order"; return (IDAL.IOrder)Assembly.Load(path).CreateInstance(className); }
}

 
 
Webサイト
protected void Page_Load(object sender, EventArgs e) 

 { 

  IDAL.IOrder order = DALFactory.Access.CreateOrder(); 

  Response.Write(order.GetOrder());

 }