Chciałem zaakceptować odpowiedź na to pytanie, ale nie mogłem zdecydować się na jedną odpowiedź, aby nadać znacznik wyboru. W związku z tym głosowałem za oryginalnymi autorami i stworzyłem to jako odpowiedź podsumowującą. Dzięki wszystkim, którzy poświęcili kilka minut, odkryłem, że wgląd, który dostarczyłeś, dał mi dobry kierunek i zapewnił mnie, że nie jestem poza torami.
@nightcracker
Po pierwsze, pułapką jest ujawnianie zbyt dużej ilości informacji. Wartość domyślna powinna być prywatna, a nie publiczna. Potem przychodzi zbyt wielu pobierających / ustawiających.
Czułem, że w przeszłości obserwowałem ten problem w działaniu. Wasze komentarze przypomniały mi również, że ukrywając zmienne leżące u ich podstaw i ich implementację, mogę zmienić ich implementację, nie niszcząc niczego od nich zależnego.
Dominic Gurto
Zaprojektuj interfejs, zanim zaczniesz myśleć o implementacji. Gene Bushuyev Projektowanie i implementacja interfejsu często idą w parze w kolejnych iteracjach, aż do ostatecznego skrystalizowania interfejsu.
Myślałem, że komentarz Dominika był świetnym ideałem, do którego można dążyć, ale myślę, że komentarz Gene'a naprawdę pasuje do rzeczywistości. Do tej pory widziałem to w akcji ... i czuję się trochę lepiej, że nie jest to rzadkie. Myślę, że gdy dojrzewam jako programista, skłaniam się ku bardziej kompletnym projektom, ale teraz wciąż cierpię z powodu skoku i otrzymywania kodu.
wantTheBest
Zacząłem powoli, z małymi / średnimi aplikacjami proceduralnymi i bez pracy o znaczeniu krytycznym. w oryginalnym kodzie proceduralnym oddziel struktury danych od kodu obserwatora / modyfikatora
To ma sens ... Podobał mi się pomysł utrzymywania pracy w pracy, ale refaktoryzacja niektórych niekrytycznych rzeczy za pomocą klas.
jpm
Jedną rzeczą, której zdecydowanie nie chcesz robić, jest posiadanie pola, które musi być sprawdzone pod kątem spójności w mutatorze i pozostawienie go publicznego
Od dłuższego czasu wiedziałem, że jest to jedna z zalet enkapsulacji danych ... możliwość wymuszenia spójności, a co za tym idzie, warunków / zakresów itp.
Szalony Eddie
Ktoś, kto myśli, że powinien trzymać się paradygmatu OO i traktować innych zgodnie z instrukcją goto na poziomach niemoralności, naprawdę nie dostrzega tego, nie patrząc na ten paradygmat. Imponująca jest także zdolność metaprogramowania szablonów.
Myślę, że początkowo bardzo brakowało mi odpowiedzi Szalonego Eddiego, ponieważ nie przeczytałem niektórych z wymienionych tematów ... takich jak metaprogramowanie. Myślę, że świetnym przesłaniem w poście CE było to, że C ++ jest tak mieszanką możliwości i stylów, że każdy z nich powinien być wykorzystany do ich najlepszego potencjału ... łącznie z koniecznością, jeśli to ma sens.
Jeszcze raz dziękuję wszystkim, którzy odpowiedzieli!