• Паттерн Стратегия

    retran
    @retran
    Если у вас возникла необходимость из стратегии как-то модифицировать контекст — то скорее всего вы неправильно произвели декомпозицию классов и скорее всего нарушили Single Responsibility Principle.

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

    А вообще надо смотреть исходную задачу, с высокой долей вероятности стратегия там действительно не нужна, а нужен простой полиморфизм (скорее всего у вас случай, когда стратегия является одним из вариантов поведения какого-то класса, а не внешним алгоритмом).
    Ответ написан
    1 комментарий