Технически это не имеет большого значения, и я не думаю, что ваша архитектура выиграет от перехода на мост. И вот почему:
Мост полезен, когда ваша иерархия имеет две различные степени свободы - кажется, что у вас есть: первая проблема, а вторая конфигурация.
В мосте вы извлекаете одну иерархию и внедряете ее в другую. Например, у вас есть абстрактный класс Problem
с собственной иерархией (ProblemA
, VeryDifficultProblem
), и вы внедряете реализацию из другой иерархии (ConcreteConfiguration1
и т. Д.)
Здесь важно две иерархии . Если ваша проблема не формирует иерархии классов, а вы хотите указать контракты с интерфейсами (чтобы реализации классов могли происходить из разных поддеревьев иерархии), тогда Bridge будет неестественным, и я буду придерживаться Factory. И я не думаю, что Bridge имеет большой смысл при реализации его с помощью интерфейсов, а не абстрактных классов.