001
23.04.2011, 05:52 Uhr
0xdeadbeef
Gott (Operator)
|
Du kannst für jedes Objekt einen anderen Wert einer Member-Konstante haben - im Grunde versprichst du damit nur, dass sich der Wert nach Konstruktion des Objekts nicht mehr ändert. Diesen Mechanismus braucht man in der Praxis allerdings eher selten.
Ansonsten gilt: Prinzipiell ist es wichtiger, die Schnittstelle sauber zu halten als die Implementationdetails. Wenn sich später an der Implementation etwas ändert und deshalb nicht nur die Klasse, sondern auch der Code, der sie benutzt, geändert werden muss, ist das schlecht. Dementsprechend kann es sinnvoll sein, statt die Konstante direkt als Variable nach außen zu geben eine Methode zu benutzen (wenn etwa die Möglichkeit besteht, dass in der Zukunft mal statt einfachen Durchreichens eine Berechnung stattfinden soll), aber ob diese Methode jetzt eine Klassenkonstante durchreicht oder den Wert direkt hart verdrahtet hat, ist eigentlich ziemlich gleichgültig. Sollte mal ein Problem damit entstehen, kann man es ohne große Probleme ändern.
Allerdings: Wenn diese Möglichkeit völlig ausgeschlossen ist, ist es unter Umständen sinnvoll, die Konstante direkt public zu machen, damit sie ggf. beispielsweise als Template-Parameter benutzt werden kann. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |