Вы можете использовать отдельный XML-файл для хранения кодов, а также их механизмов расчета.
Это снимет ограничение на невозможность добавить новый код скидки.
Файл XML: discount.xml
<discount-codes>
<discount-code>
<code>A</code>
<val>0.15</val>
</discount-code>
<discount-code>
<code>B</code>
<val>0.95</val>
</discount-code>
</discount-codes>
Примечание. Код операции (что я собираюсь делать со значениями?) В настоящее время не реализован. Вы можете реализовать то же самое на своем конце.
Использовать класс синтаксического анализатора XML:
Класс: DiscountModel.java (Этот класс является моделью для хранения кодов скидок)
public class DiscountModel {
char code;
Double val;
// Implement getters and setters
}
Класс: DiscountParser.java (это позволит проанализировать файл discount.xml и сохранить коды в списке)
public class DiscountParser {
List<DiscountModel> discountsList;
// Getters and Setters for discountsList
// Parser Code
public void parseDiscounts() {
// Code here
}
// Add new discount
public void addDiscount() {
// Code
}
// Remove discount
public void removeDiscount () {
// Code
}
}
Класс: OrderProcessor.java (Это приведет к дисконтированному значению после расчета)
/**
* Call this class when calculations need to be done.
*/
public class OrderProcessor {
// Declare instance of DocumentParser
DocumentParser dc1;
// Getter and setter for dc1
public Double calculateTotalPriceWithDiscountCode(Order order, char discountCode) {
// Find the corresponding discountcode and
// value from the list of values in the
// Class DocumentParser
// Use the corresponding values to calculate
// the discount and return the value
}
}
Всякий раз, когда требуется добавить новый код, вы можете вставить его в файл XML. То же самое применимо, если необходимо удалить код скидки.
Надеюсь, что выше поможет.