簡化工廠類拋回子類的判斷
以往的專案我都是經由工廠如此拋出,因此常常有新的類出現後,我就需要動用這個工廠類。
namespace BWOS_WS.SP.BLL
{
public class ServiceFactory
{
public ws_common RtnType(string p_type,string InputContent,string p_QueryType = "") {
ws_common Factory = null;
switch (p_type)
{
case "SPSD0040":
Factory = new BLL_SPSD0040();
break;
case "SPSR0020":
Factory = new BLL_SPSR0020();
Factory.p_QueryType = p_QueryType;
break;
}
return Factory.Query(InputContent);
}
}
}
後來在同事的提點下進化成如下 -->Assembly.Load("程序集名稱").CreateInstance("命名空間.類名稱")
public ws_common RtnType()
{
ws_common baseWeb_Service = (ws_common)Assembly.Load("XXXX").CreateInstance(this.GetType().Namespace.ToString() + ".類別名稱");
return baseWeb_Service;
}
如此就簡化了工廠類的異動
參考連結