do czego praktycznie sluzy interfejs ?

do czego praktycznie sluzy interfejs ?
0
Kopiuj
type IInterfejs = interface
  function cos(x:integer):integer;
end;

type Jakas = class(TInterfacedObject, IInterfejs)


...
end;

Po co praktycznie mi tu sluzy interfejs ? bo ja widze nadmiarowosc (dziedzicze jakies tam, dodatkowo metody). Przeciez potem posluguje sie obiektem klasy, nie widze tu zastosowania interfejsu. Moze w Javie jakos to ladniej wyglada, ale czy ktos to stosuje tu ?

cimak
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
  • Postów:1668
0

interfejs jest po to zeby wymusic pojawienie sie jakis metod.
i potem jak masz jakis obiekt to masz pewnosc ze posiada dana metode i mozesz ja wywolac.

zajcev
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 7 lat
0

pośrednio tez.. bo Delphi wywali błąd jeśli będzie interfejs bez implementacji ale wygoda ich używania jest tez gdzieś indziej..
po 1. nie trzeba znać klasy obiektu.. wystarczy sprawdzić czy implementuje ów interfejs by móc używać metod w nim zawartych..
2. jeśli rożne obiekty nie dziedziczące po jednym przodku moga implementowac ten sam interfejs..
np. obiekty pies koń słoń mogłyby mieć procedure prIDZ_DALEJ(); ale żeby ją wykonać musiałbyś znać klasy tych obiektów.. i za każdym razem rzutować nieznany obiekt na właściwy typ a później wykonywać prockę.. zamiast tego można im dać interfejs z definicją procedury idź.. zaimplementowana w owych klasach i bez względu na typ klasy tego nieznanego obiektu zassać z neigo interfejs i wykonywać procke prIDZ...

w powyzszym przykladzie mozna dziedziczą po tej klasie tworzyc rozne funckje matematyczne.. z roznymi dzialaniami zaimplementowanymi w "cos".. jak najbardziej ma zastosowanie.. dziedziczenie rowniez byloby rozwiazaniem ale nadmiarowym.. interfejs jest idealny..

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.