Domieszka pozwala uzyskać funkcjonalność podobną do wielokrotnego dziedziczenia, unikając jednocześnie trapiących je paradoksów. Jest to rodzaj klasy abstrakcyjnej, którą można „dodać” do właściwych klas. Klasa uzyskuje wszystkie deklaracje atrybutów oraz metody zdefiniowane w dodanych do niej domieszkach. Oddzielenie klas od domieszek pozwala wprowadzić jasne reguły rozwiązywania konfliktów. Przykładem języka wykorzystującego domieszki jest Ruby.

Interfejsy i cechy

Interfejs to rodzaj klasy abstrakcyjnej, która może zawierać wyłącznie metody czysto wirtualne oraz stałe. Ponieważ paradoksy dotyczą wyłącznie implementacji, której tu nie ma, w interfejsach można bezpiecznie korzystać z wielokrotnego dziedziczenia. Również klasy mogą implementować więcej niż jeden interfejs jednocześnie. Przykładami języków wykorzystujących interfejsy są Java oraz C#.

Cechy umożliwiają wielokrotne wykorzystanie tego samego kawałka kodu w różnych klasach. W przeciwieństwie do domieszek, kod ten zachowuje się tak, jakby był zapisany w tych klasach bezpośrednio, a w momencie wykonania programu nie ma możliwości stwierdzenia czy dana metoda została zaimplementowana bezpośrednio w klasie czy dodana przez cechę.

Zobacz też

programowanie obiektowe kompozycja klasa abstrakcyjna zasada podstawienia Liskov

Przypisy

Kategoria:Programowanie obiektowe