Я поддерживаю пользовательское приложение для электронной коммерции с высокой степенью OO. Оригинальный дизайнер сделал несколько предположений, таких как:
- никогда не будет более 3-х видов налога с продаж (государственный, национальный и hamonized)
- каждый вид налога с продаж может иметь только одну ставку.
- каждому штату будет присвоен один из трех типов налогов.
Он должен был знать лучше, но я думаю, это казалось разумным в то время ... Внезапно каждый штат устанавливает свою собственную "гармонизированную" налоговую ставку.
Проблема: 3 уровня вниз по стеку объектов, у меня есть метод расчета налога, который использует только сумму и тип налога. Теперь передо мной стоит задача довольно большой реструктуризации приложения, которую я плохо понимаю или у которой мало средств для изучения
Я склонен вставлять код состояния в значение сеанса и выполнять жестко запрограммированные вычисления на другом конце. (1 день) вместо реструктуризации (1-2 недели ??)
Это мое воображение или OO-приложения имеют большую кривую обучения и их может быть сложнее поддерживать, когда бизнес-правила принимают неожиданный оборот?