Po co referencje do interfejsów ?

0

Głównie mi chodzi w jakim celu tworzymy te referencje ? .Bo jeśli dana klasa implementuje dany interfejs to wiadomo ,że musi zawierać definicję klas z tego interfejsu , ale po co w takim razie tworzyć referencję do interfejsu ?

Jak rozumiem chodzi tutaj o zapis:
Interface przykladowy = new NazwaKlasy (implementujaca interfejs) ,ale co nam daje taki zapis ,oprócz tego ,że możemy korzystać z metod interfejsu . ??

0

chodzi o to, że nie wiemy czy klasa K implementuje interfejs I
konstrukcja

try
{
     I i=(I)k; // k jest obiektem klasy K
}

pozwala sprawdzić, czy K implementuje interfejs I
pozdrawiam

0

tworzenie takich referencji daje nam to ze wymuszamy tylko aby dany interfejs byl implementowany, ale prez jakakolwiek klase, nie zalezy nam natomiast aby byla to konkretna klasa
przyklad - jdbc - zbior interfejsow, ktorych uzywasz, aby polaczyc sie do bazy danych. w teorii ty uzywasz tylko standardowych interfejsow, a konkretne implementacje dostarcza vendor, np mysql, i aplikacja dziala. pozniej zmieniasz dostawce i w malym stopniu lub wrecz zadnym (skrajne, prosciutkie aplikacje) nie zmieniasz kodu zrodlowego.
albo zalozmy ze robisz wyszukiwarke plikow i chcesz zeby miala wiele ozliwosci wyszukiwania. jedna z mozliwosci jest np dodanie metody search(Criteria), gdzie criteria to intefrejs z metoda matches(File). Teraz, mozesz utworzyc wiele implementacji tego interfejsu: szukanie wg nazwy, szukanie wg typu, szukanie wg wielkosci, itp. co ci przyjdzie do glowy. dzieki interfejsowi masz tylko jedna wysokopoziomowa metoda szukajaca, wykorzystujaca implementacje rozne. teraz np mozesz zrobic cos w stylu pluginow, ze na starcie program wczytuje z danego katalogu z jarow klasy i szuka tych implementujacych dany interfejs (Criteria). W ten sposob mozesz dodac nowy plugin / wyszukiwarke tworzac tylko jedna klase. gdybys dla kazdego typu wyszukiwnia chcial robic nowa metode w silniku wyszukiwania, sam przyznasz ze troche bez sensu i nieladnie?
rozpisalem sie troszke ale sam mialem z tym klopoty na poczatku wiec chcialem podac jakies przyklady konkretne, mam nadzieje ze sie przyda
pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1