Cześć, chciałbym zadać parę pytań odnośnie czystości kodu, a jako samouk, nie mam za bardzo kogo innego się poradzić :) Otóż:
- Do jakiego stopnia abstrakcji wskazane jest pisanie metod, które wywołują inne metody? Domyślam się, że im większy "łańcuch" tym gorzej ale jaka jest ogólna przyjęta praktyka? Osobiście staram się to robić tak, że maksymalnie jedna metoda, która powiedzmy wywołuje parę innych metod ale one już kolejnych nie wywołują (wszystko w obrębie jednej klasy).
- Jak to jest z tym, że klasa ma wykonywać tylko jedno zadanie? Prosty przykład: klasa wykonuje operację na danych wejściowych, a następnie wyświetla je w jakiś "bajerancki" sposób w konsoli. To się kwalifikuje jako jedno zadanie czy już dwa? Mam podzielić to na dwie klasy, pierwsza oblicza, a potem przekazuje do drugiej stałą referencje do tego obiektu i ona zajmuje się wyświetlaniem jego danych, czy wszystko ma się odbywać wokół jednej klasy? Jak wyczuć kiedy klasa staje się zbyt ociężała?
- Hermetyzacja. Czy jeśli tworzę klasę A zaprzyjaźnioną z klasą B, aby mieć swobodny dostęp do jej danych prywatnych to czy nie łamię zasad hermetyzacji? Mam mieszane uczucia co do tego zabiegu i zawsze kiedy tak robię (bo nie widzę innej opcji) to pobieram klasę B do A w formie const aby nie robić chaosu (jaki mógłby wyniknąć z edycji tej przekazanej klasy B do A). A może za bardzo się tym wszystkim przejmuję?
- Czy każda klasa powinna mieć osobny plik nagłówkowy czy można grupować parę podobnych klas w jednym nagłówku?
Czekam na wasze opinie :)