標籤:繼承 style except on() pre get 類庫 set row
首先我們看一張我自己的架構圖
下面我們,就這個ibll bll dal idal 來說一下
首先我們需要加入IDAL類庫,定義IBaseDAL介面
這個介面只有一個作用,定義通用方法,例如增刪改查等等,記住這裡要寫成泛型,因為他的兒子們都要繼承它的喔
這裡暫時唯寫這幾個,增刪改查 提交 ok完成。
然後需要做的就是DAL層裡面的與之對應的BaseDAL這個啦
這裡只需要 繼承這個IBaseDal,實現裡面的四五個介面方法即可 ,這裡也是泛型的喔,注意看他們的單詞 base就知道這個是父親類
接下來 就有人會問 這些方法好少啊,不夠用怎麼辦,好的 這時候就需要特殊介面進行特殊方法啦
案例,我們有一張form表,form表的作用就是取其它表的表名
建立IformDAL介面
然後 你想想怎麼寫,當然是下面這樣啦,想想這個方法除了傳統的增刪改查 還需要做什麼,這裡就很好寫了
namespace WhBlog.IDAL{ //針對form寫拿資料介面 public interface IFormDAL : IBaseDAL<form> { //根據formid擷取表名 string getTableName(int formID); //建立索引this 擷取名字 string this[int index] { get; set; } //根據許可權id擷取顯示的formid數組 int[] getFormIDs(int roleFlag); }}
這裡繼承ibase介面,然後下面三個是自己針對自己form的
最後是formDAL了
這裡類實現這個介面IformDal,並且繼承這個BaseDAL這個類(這裡很重要,因為呢:如果這裡不繼承這個basedal呢,後果就是,你每一個特殊話的類就需要實現每一個增刪改查的基礎方法,是不是麻煩死了,我們把實現基礎方法介面的工作交給basedal這個類去實現Ibasedal這個基礎介面,然後我們的特殊類只需要繼承這個basedal類就可以獲得它的一切)
然後 實現以下裡面的二個方法即可
public class FormDAL : BaseDAL<form>, IFormDAL { public string this[int index] { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } public int[] getFormIDs(int roleFlag) { throw new NotImplementedException(); } public string getTableName(int formID) { throw new NotImplementedException(); } }
基本搞定,bll ibll 自己去寫,我就不說了
每日關鍵詞-170304-.net,c#分層架構常識