abstrakcyjne klasy i interfejsy najlepszych praktyk w Javie

Więc masz interfejs i klasę abstrakcyjną, która implementuje podzbiór metod w interfejsie. Masz także kilka klas, które dziedziczą klasę abstrakcyjną i dają implementacje metod, których klasa abstrakcyjna nie daje.

Więc jaka jest najlepsza praktyka tutaj? Mówię o sprawach takich jak:

1) Czy klasa abstrakcyjna powinna implementować interfejs lub czy jego klasy potomne? Czy każda klasa? Wydaje mi się, że tylko klasa abstrakcyjna powinna. Oczywiście wszystkie klasy mogą implementować interfejs, ale wydaje się to zbędne, ponieważ dzieci abstrakcji „odziedziczą” interfejs, ponieważ rozszerzają klasę abstrakcyjną.

2) Biorąc pod uwagę, że klasa abstrakcyjna implementuje części interfejsu, czy powinna również deklarować metody abstrakcyjne dla metod, których nie implementuje? Wydaje mi się, że tak jest, ale w pewnym sensie wydaje się to zbędne, ponieważ dzieci abstrakcyjne będą musiały wdrożyć te metody w celu skompilowania.

Jakie są twoje argumenty za najlepszą praktyką? Pytanie sprowadza się do: mamy interfejs, który definiuje, co chcemy, aby niektóre klasy zrobiły, mamy podzbiór metod w interfejsie, które definiują wspólne zachowanie, a my mamy kilka różnych sposobów definiowania nietypowe zachowanie. Jaki jest najlepszy sposób na to?

questionAnswers(5)

yourAnswerToTheQuestion