我正在研究以下课程。作为一个例子,我缩短了属性列表。如何保持私有属性的可扩展性?
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