代碼重構~方法歸子
與方法歸父正好(hao)相反(fan),當父類的方(fang)法(fa)只為一個子類提供時(shi),這時(shi)應該考慮把這個方(fang)法(fa)放到(dao)子類中(zhong),這就是“方(fang)法(fa)歸(gui)子”。
方法(fa)(fa)歸子(zi) — 或(huo)譯函數下移(yi),指的是方法(fa)(fa)從(cong)父(fu)類(lei)移(yi)動到子(zi)類(lei),其主要原因在于,當(dang)父(fu)類(lei)的方法(fa)(fa)只被一個子(zi)類(lei)使(shi)用(yong)時,這(zhe)個方法(fa)(fa)就不需要出現在父(fu)類(lei)了,這(zhe)時我(wo)們(men)考慮代碼的重構,將方法(fa)(fa)直接(jie)在子(zi)類(lei)中(zhong)去實現即可(ke).
代碼如下:
1 #region 方法歸子 2 /// <summary> 3 /// 如果InsertBase中(zhong)的(de)InsertSub方法只在SubInsert中(zhong)使用, 4 /// 那(nei)么,應該考慮(lv)將InsertSub方法(fa)移到SubInsert類中 5 /// </summary> 6 class SubInsert : InsertBase 7 { 8 } 9 abstract class InsertBase 10 { 11 /// <summary> 12 /// 插入方法(fa) 13 /// </summary> 14 public virtual void InsertSub() 15 { 16 throw new NotImplementedException("SubInsert插入方法"); 17 } 18 } 19 #endregion