какой шаблон проектирования использовать для простого добавления новых алгоритмов? - PullRequest
0 голосов
/ 21 февраля 2012

Я пытаюсь решить, какой шаблон проектирования я должен использовать для этой проблемы:

У меня есть компьютерные классы и алгоритм

1) Может быть много экземпляров компьютера

2) Каждый компьютер может иметь ровно один экземпляр алгоритма

3) Алгоритм - это некое резюме, в нем должно быть одно пустое «вычисление»

4) конкретный алгоритм находится в классе ConcreteAlg1, ConcreteAlg2 и т. Д., Поэтому может быть много разных классов конкретного алгоритма

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

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

Спасибо за любые идеи

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012
1 голос
/ 21 февраля 2012

Как насчет Шаблон команды для Алгоритма?Таким образом, вы можете быть уверены, что при создании экземпляра компьютера вы ожидаете реализацию интерфейса Command с методом execute (может быть переименован во что-то более подходящее)

0 голосов
/ 21 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...