Dawid Ireno

Dawid Ireno Software Architect

Temat: Bridge (Most) [Structural]

Most jest obiektem przekazującym część kontroli kodowi zawartemu w dostarczonych z zewnątrz, np. poprzez konstruktor obiektach. Wtedy obiekty te implementują pewne znane mostowi metody. Ich definicje są zazwyczaj zawarte w interfejsach, jakie implementują klasy przekazywane do mostu. Most pełni tu rolę pośrednika pomiędzy kodem użytkownika, a kodem zewnętrznym i gwarantuje temu kodowi zewnętrznemu działanie.

Wzorzec ten pozwala oddzielić pewne części implementacji i mogą one wtedy być realizowana przez oddzielne zespoły programistyczne. Inną zaletą jest zmniejszenie liczby klas, bo jeśli np. dla 3 systemów operacyjnych mamy przygotować 6 wygaszaczy ekranu, to liczba klas z normalnej 18 spada do około 9 przy zastosowaniu wzorca mostu (3 klasy abstrakcyjne, 6 klas konkretnych). Jako kolejna zaleta, konsekwencją redukcji ilości kodu źródłowego, jest tutaj redukcja wielkości kodu wynikowego. Ponadto przyszła rozbudowa aplikacji jest łatwiejsza.

Wadą wzorca mostu jest wydłużenie hierarchii dziedziczenia, ale porównując do zysków, koszt ten jest niewielki.

Poprzez most wykonywane są np. powłoki graficzne na Windows Explorera. Warto zauważyć, że w systemie Windows jest tylko jedna implementacja, ale ponieważ została pozostawiona furtka w postaci mostu, powstało wiele alternatywnych reprezentacji standardowego widoku Windows Explorera.