Итак, у меня есть класс менеджера заказов, который выглядит так:
public class OrderManager
{
private IDBFactory _dbFactory;
private Order _order;
public OrderManager(IDBFactory dbFactory)
{
_dbFactory = dbFactory;
}
public void Calculate()
{
_order.SubTotal
_order.ShippingTotal
_order.TaxTotal
_order.GrandTotal
}
}
Теперь смысл в том, чтобы иметь гибкий / проверяемый дизайн.
Меня очень беспокоит возможность написания надежных модульных тестов для этого метода Calculate.
Вопросы:
1. Shipping has to be abstracted out, be loose coupled since the implementation of shipping could vary depending on USPS, UPS, fedex etc. (they have their own API's).
2. same goes with calculating tax
Должен ли я просто создать класс диспетчера налогов и отгрузок и иметь в конструкторе фабрику налогов / отгрузок? (как именно я разработал свой класс OrderManager)?
(единственное, о чем я могу подумать, с точки зрения того, что мне «не хватает», - это IoC, но я не против, и мне не нужен этот дополнительный уровень абстракции, на мой взгляд).