Guest User

Untitled

a guest
Jun 23rd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. public interface ITax
  2. {
  3. decimal ProvincialTaxRate { get; set; } // Yes, I'm Canadian :)
  4. decimal CalculateTax(decimal subtotal);
  5. }
  6.  
  7. public SaskatchewanTax
  8. {
  9. public decimal ProvincialTaxRate { get; set; }
  10.  
  11. public SaskatchewanTax()
  12. {
  13. ProvincialTaxRate = new decimal(0.05f);
  14. }
  15.  
  16. public decimal CalculateTax(subtotal)
  17. {
  18. return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
  19. }
  20. }
  21.  
  22. public OntarioTax
  23. {
  24. public decimal ProvincialTaxRate { get; set; }
  25.  
  26. public OntarioTax()
  27. {
  28. ProvincialTaxRate = new decimal(0.08f);
  29. }
  30.  
  31. public decimal CalculateTax(decimal subtotal)
  32. {
  33. return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
  34. }
  35. }
  36.  
  37. public class TaxCalculator
  38. {
  39. public static decimal FederalTaxRate = new decimal(0.05f);
  40. }
  41.  
  42. public interface ITax
  43. {
  44. decimal CalculateTax(decimal subtotal);
  45. }
  46.  
  47. public class SaskatchewanTax : ITax
  48. {
  49. private readonly decimal provincialTaxRate;
  50. private readonly decimal federalTaxRate;
  51.  
  52. public SaskatchewanTax(decimal federalTaxRate)
  53. {
  54. provincialTaxRate = 0.05m;
  55. this.federalTaxRate = federalTaxRate;
  56. }
  57.  
  58. public decimal CalculateTax(decimal subtotal)
  59. {
  60. return provincialTaxRate * subtotal + federalTaxRate * subtotal;
  61. }
  62. }
  63.  
  64. public class OntarioTax : ITax
  65. {
  66. private readonly decimal provincialTaxRate;
  67. private readonly decimal federalTaxRate;
  68.  
  69. public OntarioTax(decimal federalTaxRate)
  70. {
  71. provincialTaxRate = 0.08m;
  72. this.federalTaxRate = federalTaxRate;
  73. }
  74.  
  75. public decimal CalculateTax(decimal subtotal)
  76. {
  77. return provincialTaxRate * subtotal + federalTaxRate * subtotal;
  78. }
  79. }
  80.  
  81. public abstract class Tax
  82. {
  83. protected decimal ProvincialTaxRate; // Yes, you are Canadian ;)
  84. public decimal CalculateTax(decimal subtotal)
  85. {
  86. return ProvincialTaxRate * subtotal + FederalTaxRate * subtotal;
  87. }
  88. decimal FederalTaxRate = new decimal(0.20f);
  89. }
  90.  
  91. public class SaskatchewanTax : Tax
  92. {
  93. public SaskatchewanTax()
  94. {
  95. base.ProvincialTaxRate = new decimal(0.05f);
  96. }
  97.  
  98. }
  99.  
  100. public class OntarioTax : Tax
  101. {
  102. public OntarioTax()
  103. {
  104. base.ProvincialTaxRate = new decimal(0.08f);
  105. }
  106.  
  107. }
  108.  
  109. public decimal CalculateTax(decimal subtotal, decimal provincialTaxRate, decimal federalTaxRate) {
  110. return provincialTaxRate * subtotal + federalTaxRate * subtotal;
  111. }
Add Comment
Please, Sign In to add comment