Den Kommentaren zur
ungarischen Notation kann ich mich nur anschließen. Namen mit kryptischen Präfixen zu versehen, macht den Quelltext nicht übersichtlicher. Wichtiger ist, dass die Namen kurz und prägnant zum Ausdruck bringen, was sie beinhalten oder tun:
Oft gesehenes Negativbeispiel:
|
C-/C++-Quelltext
|
1
2
3
|
void Person::get_age() {
std::cout << age_ << "\n";
}
|
Mein Lei
dspruch zur
Objektorientierung ist hier: "Du verstehst Objektorientierung, wenn Du weißt, wann du sie nicht verwenden solltest" [1]. Vererben sollten man m.M.n. nur, wenn man Polymorphie benötigt (virtual).
Mit
Singletons sollte man m.M.n. auch sehr sparsam umgehen. Sie sollten nur dann eingesetzt werden, wenn es wirklich nur ein einziges Objekt des Typs geben darf (aktuell und in Zukunft). Sie sollen auf keinen Fall dafür eingesetzt werden um globale Variablen zu kaschieren. Das Beispiel mit der "Zeit" dient wahrscheinlich nur zur Demonstration (ich kenne das Buch nicht). Aber: Was spräche dagegen, dass es mehrere Zeiten gibt? Nichts? -> kein Singleton.
Persönlich habe ich mir folgende Regeln für
Code-Formatierung auferlegt:
- CamelCase für Klassen
- tailing_underscore_ - für private Member-variablen
- UPPERCASE_WITH_UNDERSCORES - für globale Konstanten
- tailing_underscore_ - für private Member-variablen.
- Capitalized_Words_With_Underscores - für Funktionen, welche auf globale Variablen zugreifen (einfach, weil es so hässlich ist, dass man es am liebsten vermiede und als dicke Warnung für den Leser)
- lowercase_with_underscores - für alle anderen Namen
Grüße ... bwbg
[1]: "
Stop writing classes!" Speziell für Python, lässt sich aber auch teilweise übertragen.