多型設計時候的一些小技巧,通過加入一層抽象類,減少後續的改動,如在抽象基類或者介面中加入新的method,此時並不需要在所有的實現類中去實現,只需要在需要實現的類中去實現處理,在抽象類中提供預設的實現,當然出現此種情況介面可能設計的時候存在一定的不合理,但是在實際的情況確實會出現不合理。
public inte***ce ifile
public abstract class abstractfile : ifile
public class imagefile : abstractfile
private bool doopenimagefile()
}
public class docfile : abstractfile
private bool doopendocfile()
}
此時如果需要在ifile中加入新的method:bool textfilebackup ();如果沒有加入abstractfile 層,則需要在所有的實現類中去實現該方法,而實際就docfile 或者後面新加入的文字處理相關的file類需要實際處理該方法,
imagefile
就直接返回
。當然這裡可以通過改進設計,將textfilebackup方法從ifile中移走,但是實際情況有可能其他地方就是依賴ifile來呼叫textfilebackup方法,這就造成改動會影響較大。
通過在abstractfile中實現虛方法來加入乙個預設的實現,在子類中就可以選擇性的實現textfilebackup了。
public abstract class abstractfile : ifile
}
只在docfile中覆寫
public class docfile : abstractfile
private bool doopendocfile()
public override bool textfilebackup()
private bool dotextfilebackup()
}
可能存在不合理,但是在設計時候加入抽象類層次,可以增加一定的靈活性。 html設計時 img與元素存在間距的處理
在學習開發筆書奇 時,遇到一下問題 問題點 在初始化css中設定了img的padding和margin為0,可是在插入img後,img與父元素仍然有一定間距。原因分析 文字等inline元素預設與父級元素的baseline對齊,而baseline與父級元素底部是有一定距離的 這個與font size...
PHP設計超級好用的檔案上傳處理類一 (37)
class fileupload this setoption key,val private function geterror 時出錯 switch this errornum 個位元組 break case 3 str 上傳失敗 break case 4 str 建立存放上傳檔案目錄失敗,請重...
資料集按類劃分 用特別設計的損失處理非均衡資料
本文是對 cvpr 2019 class balanced loss based on effective number of samples 的一篇點評,全文如下 這篇 針對最常用的損耗 softmax 交叉熵 focal loss 等 提出了一種按類重新加權的方案,以快速提高精度,特別是在處理類...