Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface ITax
- {
- decimal ProvincialTaxRate { get; set; } // Yes, I'm Canadian :)
- decimal CalculateTax(decimal subtotal);
- }
- public SaskatchewanTax
- {
- public decimal ProvincialTaxRate { get; set; }
- public SaskatchewanTax()
- {
- ProvincialTaxRate = new decimal(0.05f);
- }
- public decimal CalculateTax(subtotal)
- {
- return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
- }
- }
- public OntarioTax
- {
- public decimal ProvincialTaxRate { get; set; }
- public OntarioTax()
- {
- ProvincialTaxRate = new decimal(0.08f);
- }
- public decimal CalculateTax(decimal subtotal)
- {
- return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
- }
- }
- public class TaxCalculator
- {
- public static decimal FederalTaxRate = new decimal(0.05f);
- }
- public interface ITax
- {
- decimal CalculateTax(decimal subtotal);
- }
- public class SaskatchewanTax : ITax
- {
- private readonly decimal provincialTaxRate;
- private readonly decimal federalTaxRate;
- public SaskatchewanTax(decimal federalTaxRate)
- {
- provincialTaxRate = 0.05m;
- this.federalTaxRate = federalTaxRate;
- }
- public decimal CalculateTax(decimal subtotal)
- {
- return provincialTaxRate * subtotal + federalTaxRate * subtotal;
- }
- }
- public class OntarioTax : ITax
- {
- private readonly decimal provincialTaxRate;
- private readonly decimal federalTaxRate;
- public OntarioTax(decimal federalTaxRate)
- {
- provincialTaxRate = 0.08m;
- this.federalTaxRate = federalTaxRate;
- }
- public decimal CalculateTax(decimal subtotal)
- {
- return provincialTaxRate * subtotal + federalTaxRate * subtotal;
- }
- }
- public abstract class Tax
- {
- protected decimal ProvincialTaxRate; // Yes, you are Canadian ;)
- public decimal CalculateTax(decimal subtotal)
- {
- return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
- }
- decimal FederalTaxRate = new decimal(0.20f);
- }
- public class SaskatchewanTax : Tax
- {
- public SaskatchewanTax()
- {
- base.ProvincialTaxRate = new decimal(0.05f);
- }
- }
- public class OntarioTax : Tax
- {
- public OntarioTax()
- {
- base.ProvincialTaxRate = new decimal(0.08f);
- }
- }
- public decimal CalculateTax(decimal subtotal, decimal provincialTaxRate, decimal federalTaxRate) {
- return provincialTaxRate * subtotal + federalTaxRate * subtotal;
- }
Add Comment
Please, Sign In to add comment