Bridge
разделяет интерфейс и реализацию на несколько частей. В вашем примере вы получите 2 разных интерфейса Shape
, Color
. Они будут генерировать свои собственные иерархии классов, и поскольку они независимы, они могут различаться.
В результате вы получите несколько фигур и несколько цветов, которые можно комбинировать во время выполнения. Это достигается с помощью composition
вместо inheritance
. Каждый экземпляр Shape
нуждается в экземпляре Color
, когда он создается, и таким образом вы получаете красный треугольник или зеленый пятиугольник или любую другую комбинацию Shape
и Color
.
Иерархии не тесно связаны и взаимодействуют только на уровне интерфейса.