Как сделать уменьшить связь, когда один класс вызывает только один метод другого класса, у которого много методов?

У меня есть класс (назовем его MyService ), который принимает две зависимости в своем конструкторе. Первый не имеет отношения к вопросу. Второй - PaymentDetails . PaymentDetails живет дольше, чем MyService, который создается фабрикой для обработки этого конкретного запроса.

В MyService.process () он:

  • выполняет некоторые действия с первой зависимостью,
  • создает новую TransactionDetails () и устанавливает для него различные вещи,
  • вызывает myPaymentDetails.setTransactionDetails (td);
  • возвращает что-то, чтобы сказать, какая страница в мастере следует следующей

PaymentDetails по необходимости много способов на это. Это объект в стиле Entity, в который информация накапливается по мере того, как пользователь проходит серию из 5 страниц.

Меня беспокоит то, что мой класс обслуживания зависит от всего PaymentDetails но вызывает только один единственный метод.

Это меня беспокоит, потому что:

  • это ограничит возможность повторного использования класса обслуживания
  • невозможно понять, каковы реальные зависимости, прочитав сигнатуры методов

Мой вопрос:

Каков наилучший способ исправить это так, чтобы у моего класса обслуживания были минимальные зависимости?

6
задан WW. 2 April 2011 в 05:59
поделиться