Mam kilka klas i chciałbym aby wszystkie utworzone obiekty tych klas korzystały z tego samego obiektu jakiejś klasy bazowej, a nie tworzyć za każdym razem nowej instancji obiektu bazowego. Mógłby mi ktoś doradzić jak to zrobić?
Mają korzystać z tego samego obiektu? Wyjaśnisz, co rozumiesz przez korzystać z obiektu klasy bazowej?
Zależnie od tego co przez to rozumiesz możesz na przykład stworzyć kompozycję w tych "kilku klasach", umieszczasz tam wskaźnik do obiektu którego chcesz używać, a w konstruktorze podpinasz swój obiekt.
Jeśli jestem w błędzie to proszę o poprawkę.
prawdopodobnie chodzi o (anty?)wzorzec Singleton
ewentualnie Monostate
ewentualnie zwykłą klasę statyczną
albo o dependency injection
poczytaj i wybierz sobie rozwiązanie które Ci pasuje
Na samym początku właśnie myślałem o klasie statycznej. Ogólnie chodzi o to by wszystkie inne obiekty korzystały z tego samego obieku "bazowego". Przykładowo np. mam klasę Connection, gdzie tworzę obiekt tylko raz, z zadanym IP, portem itd. I wszystkie inne obiekty które chciałyby się podłączyć do tego serwera będą wykorzystwać ten sam obiekt, bez potrzeby tworzenia nowych jego instancji.
Zły pomysł. w aplikacji wcale niw musi występować jedbo połączenie z jedną bazą.
po prostu przekazuj połączenie - aplikacja powinna być tak zaprojektowana że niewiele obiektów ma styczność z bazą danych bezpośrednio - w związku z tym przekazywanie połączenia nie powinno mieć miejsca zbyt często
na początku może się wydawać dobrym pomysłem żeby połączenie było "globalne", ale nagle może się okazać że potrzebujesz drugiego połączenia i kod musisz zmieniać w tysiącach różnych miejsc - wydaje się to mało prawdopodobne, a jednak osobiście mnie to spotkało