0
我有一個基礎抽象類,它在構造函數中調用私有驗證方法。對於其後代的一部分,我想跳過這個檢查。這個類有太多的用法,我不能從基類中移動驗證。空接口或公開驗證
哪個是更好的解決方案
- 創建一個空的接口,以類來實現,這將跳過此檢查
- 揭露這個屬性,使其受保護的虛擬和派生類應該跳過空體覆蓋它檢查
(任何其他更好的解決方案也將被讚賞)
我有一個基礎抽象類,它在構造函數中調用私有驗證方法。對於其後代的一部分,我想跳過這個檢查。這個類有太多的用法,我不能從基類中移動驗證。空接口或公開驗證
哪個是更好的解決方案
(任何其他更好的解決方案也將被讚賞)
如果考慮應用只屬於這個班級,我會選擇第二種辦法。如果在更多的類中會出現這種情況,那麼它會代表一些獨立於類的行爲,我會選擇第一種選擇(那麼也可以在需要使用類而不使用檢查的情況下使用多態)。
public abstract class BaseClass {
public BaseClass(bool? validate = true) {
if (validate.HasValue && validate.Value) {
Validate();
}
}
private void Validate() { }
}
public class ChildClass1 : BaseClass {
public ChildClass1() : base() { }
}
public class ChildClass2 : BaseClass {
public ChildClass2() : base(false) { }
}
你可以發佈你目前的? – niksofteng
一個基類帶有很多不可選參數的支付(這就是爲什麼我認爲可選參數不是一個好選擇),在構造函數中驗證付款和它的逆向付款和這個類的後代之間的貨幣(有些應該跳過這個驗證) –