стратегии увеличивают количество объектов в приложении - PullRequest
0 голосов
/ 20 октября 2011

Может кто-нибудь уточнить, пожалуйста, что касается схемы стратегии:

"Стратегии увеличивают количество объектов в приложении. Иногда вы можете уменьшить эти издержки, реализуя стратегии как объекты без состояния, которые могут совместно использоваться контекстами. Любое остаточное состояние поддерживается контекстом, который передает его в каждом запросе к Стратегии объект. Совместно используемые стратегии не должны поддерживать состояние между вызовами. "

Почему стратегии увеличивают количество объектов в приложении?

Спасибо.

1 Ответ

0 голосов
/ 20 октября 2011

Это происходит, как уже упоминалось, когда вы поддерживаете состояние стратегий.Позвольте мне объяснить это немного подробнее: скажем, у вас есть класс StandardCalculator.Теперь предположим, что у вас есть API (стратегии псевдонимов) для следующих операций

  1. Добавьте два числа
  2. Получите квадратный корень из суммы квадрата из двух чисел ir square_root (a_square + b + square)
  3. Разница двух чисел

Теперь есть два способа достижения решения: 1) Иметь конструктор, который принимает два числа 2) Клиент создает экземпляр и затем вызывает getSum (), get_square_root_sum (), get_difference () и т. д.

В этом случае, когда клиенту необходимо использовать эти API, ему необходимо будет создать новый экземпляр StandardCalculator

Другое решение:

  1. Создание синглтона класса
    1. Наличие API-интерфейсов getSum (int a, int b), get_square_root_sum (int a, int b), get_difference (int a, int b)и т. д.

Итак, здесь ваши API запрашивают параметры для реализации стратегии.

В этом случае разные клиенты могут использовать один и тот же экземпляр StandardCalculator для вызовараСтратегии аренды.

...