Stworzyłem interfejs i stos. Teraz mogę wywołać stos za pomocą odwołania z tego interfejsu lub bezpośrednio. Nie rozumiem, dlaczego powinienem wybrać trasę referencyjną. Książka, o której mowa, mówi o jej wdrożeniu w czasie wykonywania, więc jest lepsza. Proszę, może ktoś to wytłumaczy
Odpowiedzi:
0 dla odpowiedzi № 1Nie jestem pewien co do rzeczywistego kodu, o którym mówisz, ale korzyści płynące z używania interfejsu są takie.
interface Stack {
void push (T x);
T pop ();
}
class IntegerStack implements Stack<Integer> {
}
Jak widać, możemy przygotować stos dla każdegotypy do akceptowania każdego potrzebującego typu, ale także dostęp do niego za pośrednictwem tego samego interfejsu. W rzeczywistości ta decyzja, która metoda implementacji jest wywoływana przez interfejs, podjęta przez czas kompilacji, więc nie jestem pewien, czy odpowiada na twoje pytanie.
Jeśli wiesz, że trzymasz się tylko jednej implementacji, korzystanie z interfejsu jest bezużyteczne. (Ale zdarza się rzadko, że oprogramowanie zostało opracowane jako praktyczne zastosowanie)
Przy okazji, jeśli wdrażasz Stack, uważam, że lepiej jest użyć bardziej znanego berło niż samodzielne wdrożenie. ;)