Ostatnio pisząc cosik, ubzdurałem sobie, że nadużywam klas. Miałem w każdym osobnym pliku klase, każda robiła coś innego, ale tak naprawde wywoływałem każdą z nich tylko raz. Wiec zaczołem używać przestrzeni nazw namespace, i teraz, mam wrażenie ze nadużywam przestrzeni nazw :) Wiec oto moje pytanie: Kiedy czego używać? Czy klasa którą wywołujemy tylko raz ma sens? Kiedy używać przestrzeni nazw, kiedy klass?
Kiedy w swoim kodzie widzisz coś takiego:
std::string user1;
std::string user2;
std::string ...;
std::string user99;
Czasami coś można zastąpić zwykłą funkcją.
Przestrzeni nazw nie da się nadużywać. Na dobrą sprawę, w żadnym większym programie nie powinieneś dodawać nic do globalnej. Ja sobie robię dla wygody typedefy u32
, u16
itd, ale to w sumie też praktyka, którą można kwestionować.
Co do klasy: jeśli coś zachowuje się jak obiekt, czyli jest zamkniętą jednością niezależną od jakiegoś stanu globalnego, posiadającą cechy/funkcje (np. string
ma wiekość, możesz w nim wyszukać, każda instancja niezależna od innych) to jest to dobry kandydat na klasę. Nawet jeśli użyjesz jej raz - pamiętaj, że założenia projektu mogą się zmienić. Np. kiedyś nie do pomyślenia było posiadanie kilku ekranów. Teraz to codzienność.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.