Witam
Uczę się programować obiektowo i mam pytanie.
Jak operować na zmiennych pomiędzy klasami. W sensie, że mam np. jakąś tablice, którą chcę, żeby była dostępna do operacji przez dwie klasy. I teraz mogę to zrobić na kilka sposobów.
-
Utworzyć tablicę w pierwszej klasie, a następnie przez referencję przekazać do konstruktora drugiej klasy.
-
Utworzyć tablicę w pierwszej klasie i przekazywać przez referencję do jakichś metod drugiej klasy.
-
Zamiast 2 klas utworzyć jedną dużą, która będzie obejmowała funkcjonalność tych klas i wtedy po prostu zadeklarować w niej tablicę.
-
Utworzyć trzecią klasę abstrakcyjną w niej umieścić tablicę jako statyczną, a potem zrobić dziedziczenie tej klasy przez 2 wspomniane klasy.
I teraz pytanie. Która z tych opcji jest najlepsza. W sensie, że zdaje sobie sprawę, że każdego ze sposobów używa się w zależności od sytuacji, pytam która z opcji jest jakby najczęściej używana i zgodna z ideą programowania obiektowego. A może robicie to zupełnie inaczej?
Jeśli ktoś nie rozumie o co mi chodzi dam pewien przykład. Ostatni robiłem menu do gry. Mam jakąś funkcję main w której tworzę obiekt klasy Menu. Te menu ma składową "obraz", czyli po prostu obraz, który jest wyświetlany na ekranie. W klasie Menu tworzę obiekt klasy WskażnikMenu, który będzie po prostu podświetlał odpowiednią opcję w menu, lecz żeby to zrobić muszę mieć dostęp do zmiennej obraz i musi być to ten sam obraz, który jest w obiekcie menu. Jak to zrobić?