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(); } }