Wzorzec projektowy Most (ang. Bridge )

Idea

Wzorzec MOST może wydawać się bardzo podobny do wzorca Adapter. Wzorzec ten powstał by oddzielić interfejs od implementacji tak by oba elementy mogły istnieć niezależnie, a co za tym idzie by powstała możliwość wprowadzania zmian do implementacji bez konieczności zmian w kodzie, który korzysta z klasy.

Zalety

Korzyści ze stosowania wzorca mostu:

  • umożliwia odseparowanie implementacji od interfejsu.
  • poprawia możliwość rozbudowy klas
  • ukrywanie szczegółów implementacyjnych od klienta

Stosowalność

  • wymagana jest oddzielność interfejsu od implementacji
  • zarówno interfejs jak i implementacja musi zostać rozbudowana poprzez podklasy.
  • zmiana implementacyjne nie mogą mieć wpływu na klienta

Struktura

Implementacja

public interface AbstrakcyjnyIF {
   public void action();
}
public class AutoSportoweImplementator implements ImplementatorIF {
   public AutoSportoweImplementator() { /*ciało konstruktora*/ }
   public void actionImplementowana() { /*ciało metody*/ }
}
public class AutoRodzinneImplementator implements ImplementatorIF {
   public AutoRodzinneImplementator() { /*ciało konstruktora*/ }
   public void actionImplementowana() { /*ciało metody*/ }
}
public interface ImplementatorIF {
   public void actionImplementowana();
}
public class AutoSportowe implements AbstrakcyjnyIF {
   ImplementatorIF implementator = new AutoSportoweImplementator();
   public AutoSportowe() { /*ciało konstruktora*/ }
   public void action() {
      implementator.actionImplementowana();
   }
}
public class AutoRodzinne implements AbstrakcyjnyIF {
   ImplementatorIF implementator = new AutoRodzinneImplementator();
   public AutoRodzinne() { /*ciało konstruktora*/ }
   public void action() {
       implementator.actionImplementowana();
   }
}