我正在研究以下課程。作爲一個例子,我縮短了屬性列表。如何保持私有屬性的可擴展性?
public class Paycheck
{
public decimal Gross { get; private set; }
public decimal FederalWithholdingTax { get; private set; }
public decimal StateWithholdingTax { get; private set; }
// ...
}
現在我的想法是創建一個接口來計算所有稅款...
public interface IPaycheckDeductionCalculator
{
void Calculate();
}
的想法後,也就是可以執行計算/扣除的片酬類之外創建方法。隨着法律和薪資流程的運作方式,扣除額如何執行以及扣除額會不斷變化,因此我希望保持可擴展性。
我的兩難處境是我想讓Paycheck屬性設置器保持私密,以便任何人都可以更改這些值。處理薪水後保持數據不變是至關重要的。
我考慮過代表的使用,但我不確定這是我的答案,因爲我仍然無法在Paycheck類之外開發所需的方法。
有沒有我沒有想到的東西,或者這是一個「你不能有你的蛋糕,吃太多」的情況?
您可以創建一個實現該接口的類,然後在'Calculate'方法內實例化一個'Paycheck'類,從而通過'Paycheck'構造函數初始化這些值? – CyberDude 2015-03-02 15:49:45
我考慮過這個,但是我必須爲每個屬性初始化一個新類,然後我必須有一些方法將所有這些類減少爲一個。計算方法僅負責計算Paycheck類的一個屬性。 – Safari137 2015-03-03 18:18:29