//這class只負責定義getInstance 來設定得到想要的物件 public override InterfaceDao getInstance(EDaoType p_Type) { switch (p_Type) { case EDaoType.SQLServer: return(new SqlServerDao()); case EDaoType.SQLite: return(new SQLiteDao()); default: return(null); } }
public abstract InterfaceDao getInstance(EDaoType p_Type);
//這邊呼叫父類別的建構值,而他的建構值也會呼叫getInstance //這算是自己寫的一點變化 public DaoFactory(EDaoType p_Type) : base(p_Type) { }
public ADaoFactory(EDaoType p_Type) { IDao = getInstance(p_Type); }