Zpo-13-wyk-Slajd9
Przykład
Komponenty nie istnieją w odosobnieniu – aby wykonywać swoje funkcje, muszą ze sobą współpracować. Istotą programowania komponentów jest możliwość ich konfigurowania i łączenia bez konieczności modyfikacji kodu źródłowego, dlatego istotnym problemem jest definiowanie zależności pomiędzy nimi, a następnie ich rozwiązywanie. Zadania te muszą być rozwiązane w sposób zapewniający spełnienie podanych wcześniej warunków.
Problem zależności pomiędzy komponentami zostanie omówiony na prostym przykładzie.
Samochód jest zbudowany z wielu podzespołów, które są także powiązane pomiędzy sobą, w tym m.in. Silnika. Z punktu widzenia Klienta jednak Samochód tworzy zamkniętą całość, której wewnętrzna struktura i sposób współpracy poszczególnych jej elementów mają niewielkie znaczenie: kupuje Samochód w całości, gotowy do drogi, i oczekuje, że będzie mógł nim wyjechać z salonu, a nie rozpoczynać jego użytkowanie od samodzielnego złożenia go z części
Z drugiej strony klient chce mieć wpływ na dobór przynajmniej niektórych podzespołów, które zostaną zamontowane w jego egzemplarzu (m.in. rodzaj silnika, typ opon, elementy bezpieczeństwa, dodatkowe wyposażenie etc).
Pogodzenie tych dwóch wymagań jest w niektórych sytuacjach trudne i jest istotą problemu definiowania zależności pomiędzy komponentami.