składniki prywatne, gettery i settery

0

Tworze prostą gre Kolko i krzyżyk.

class TicTacToe
{
    static int tura;
    Pole pola[pola_kolumny][pola_rzedy]; // pola okreslaja nam logiczne odzwierciedlenie pol na planszy,
public:
    static const int pola_rzedy = 3;
    static const int pola_kolumny = 3;
void wyswietl() // wyswietla okienko 
// inne metody
} 

Zastanawia mnie kilka spraw:

  1. czy składowa tura powinna byc statyczna?
  2. operacje jakie chce wykonywać na niej to pobieranie danej wartosci, zwiekszanie o jeden i zerowanie, czy w takim razie powinienem utworzyć az 3 metody ?
  3. Kiedy tak naprawdę powinienem ustawić zmienną jako publiczną? Teraz ciągle ustawiam zmienne jako prywatne ale i tak tworze do nich gettery i settery o ile są wymagane. Nie wiem czy to dobry nawyk

Dziękuje za odpowiedz i pozdrawiam :)!

3
  1. czy składowa tura powinna byc statyczna?

Nope.

  1. operacje jakie chce wykonywać na niej to pobieranie danej wartosci, zwiekszanie o jeden i zerowanie, czy w takim razie powinienem utworzyć az 3 metody ?

Ale gdzie chcesz wykonywać te operacje? Poza klasą czy wewnątrz? Jeśli to pierwsze to robisz coś nie tak (jak rozumiem TicTacToe to klasa gry), jeśli to drugie, to nie potrzebujesz żadnej metody do inkrementowania inta tu i tam.

  1. Kiedy tak naprawdę powinienem ustawić zmienną jako publiczną? Teraz ciągle ustawiam zmienne jako prywatne ale i tak tworze do nich gettery i settery o ile są wymagane. Nie wiem czy to dobry nawyk

Jeśli potrzebujesz czegoś takiego (http://en.wikipedia.org/wiki/Passive_data_structure) walisz publiczne pola i niech się dzieje wola nieba. Jeśli nie potrzebujesz, walisz pola prywatne, a w reszcie kodu minimalizujesz potrzebę dostępu do tych pól.

0
  1. Kiedy tak naprawdę powinienem ustawić zmienną jako publiczną? Teraz ciągle ustawiam zmienne jako prywatne ale i tak tworze do nich gettery i settery o ile są wymagane. Nie wiem czy to dobry nawyk

Taaak enkapsulacja - och i ach super. W praktyce jednak prowadzi to do nadmiernego puchnięcia kodu klasy. Ma to sens jeżeli piszesz bibliotekę i będą z Twojego kodu korzystały osoby trzecie, albo potrzebujesz walidować wartość przed ustawieniem i/lub wartość zwracania getterem jest wyliczana na podstawie prywatnych pól. Generalnie jeżeli piszesz dla siebie, to nie musisz się tym bardzo przejmować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1