Иногда мы разрабатываем более одного алгоритма, чтобы получить одинаковые результаты. Например, я написал класс, который хранит мои данные в деревьях, и другой класс, который хранит примерно те же данные, скажем, в связанных списках.
Я опубликую интерфейс (абстрактный класс) под названием ThingStore и подклассирую его в TreeThingStore и ListThingStore, каждый из которых соответственно использует деревья или связанные списки.
Однако, так как я публикую абстрактный класс, мне нужно, чтобы кто-то решил, какую реализацию использовать ( EDIT : так что вызывающей стороне это не нужно), и у меня нет проблем в том, что это жестко закодировано. Мне это нужно было не раз, но я безуспешно изучал каталоги GoF и другие шаблоны проектирования. Наиболее похожая модель - «Стратегия», но она позволяет достичь разных целей.
Итак, есть ли Design Pattern для этого намерения? Если нет, то кто-то может создать его или сказать мне, почему этого не следует делать (или есть лучшие способы достижения тех же результатов)?