PetShop学習ノート(一)のInterface_Factory
3458 ワード
インタフェースクラスライブラリ
IDAL(IOrder)
public interface IOrder { string GetOrder(); }
2つのオペレーションクラスライブラリ(いずれもIDAL.IOrderインタフェースを実装)
SQLServerDAL(Order)
OracleDAL(Order)
工場クラスライブラリ
DALFactory(Access)
Webサイト
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());
}