Witam
to mój pierwszy wpis na forum, więc proszę o wyrozumiałość ;)
koduję w Java taką sytuację:
Tworzę abstrakcyjną klasę, którą będzie implementował klient.
U klienta na pewno występują obiekty takie jak decyzja i stan
Klasa definiuje abstrakcyjne metody operujące między innymi na obiektach klienta - metody przyjmują je jako parametry i zwracają. Implementacja tych metod jest po stronie klienta. Przykładowo jakaś metoda przyjmuje jako parametr stan a zwraca decyzję.
Metody te są użyte w głównej metodzie, zaimplementowanej (w abstrakcyjnej klasie) przeze mnie, więc klient nie musi jej implementować. Metoda ta, jak już można się domyśleć, operuje na stanach, decyzjach i innych danych i coś tam robi... i klient się z tego cieszy (pod warunkiem, że dobrze zaimplementował wcześniej wspomniane metody abstrakcyjne)
I teraz pytanie, czy prawidłowe / dopuszczalne jest takie zdefiniowanie metod abstrakcyjnych, że np. jako parametr przyjmują stan jako obiekt typu Obiekt, który w implementacji klienta będzie konkretnym obiektem stanu o typie zdefiniowanym po stronie klienta. Ja od stanu i decyzji nic nie potrzebuję, żadnego interfejsu, więc trochę nie widzę potrzeby ich definiowania. Moja główna metoda tak operuje na stan i decyzja, że do nich nie zagląda, operuje na nich metodami zaimplementowanymi przez klienta.
Mam nadzieję, że w miarę jasno się określiłem na tym abstrakcyjnym poziomie, jeśli nie to oczywiście spróbuję doprecyzować...
Z góry dzięki!