Как выбрать наиболее подходящий шаблон дизайна - PullRequest
2 голосов
/ 23 мая 2011

У меня проблема в следующем.

Мы начинаем принимать корпоративные карты в наших киосках. Алгоритм / процедуры авторизации корпоративных карт будут другими для компаний.Мы хотели бы иметь дизайн, который поможет нам добавить новый алгоритм / подпрограммы в существующую систему с минимальным кодированием всякий раз, когда компания приближается к нам со своим алгоритмом / подпрограммами.

Заранее спасибо,

Джо.

Ответы [ 4 ]

2 голосов
/ 23 мая 2011

Как говорили другие люди, шаблон стратегии очень хорошо подходит для этого сценария.

Когда ваши сущности (компании) отличаются по поведению (авторизации), инкапсулируйте поведение и отделите его от определения сущностей.

2 голосов
/ 23 мая 2011

Взгляните на шаблон проектирования стратегии

Думаю, это будет ближе всего к тому, чего вы пытаетесь достичь!

Вам понадобится класс CardStrategyBase со стандартными методами для обработки работы. Затем класс Card1Strategy, класс Card2Strategy и т. Д. Будет иметь фактическую реализацию алгоритма, характерную для каждого типа карт. Все вещи, общие для всех типов карт, могут входить в класс CardStrategyBase.

0 голосов
/ 23 мая 2011

Deverdency Inversion (DI).

"Проблема" с шаблоном стратегии заключается в том, что он позволяет выбирать из списка доступных реализаций, а не добавлять новые реализации для новых карт.

Вообще говоря, большинство приличных реализаций DI позволяют отказаться от новых реализаций, не выполняя крупного развертывания;после чего это может быть только вопросом добавления соответствующей конфигурации, чтобы включить новую реализацию (и).

0 голосов
/ 23 мая 2011

Вы можете использовать шаблон стратегии http://sourcemaking.com/design_patterns/strategy это хороший справочник для вашей работы

...