005
08.09.2008, 09:06 Uhr
ao
(Operator)
|
Zitat von öni: |
Wenn nun die Klasse 'Fahrer' die Geschwindigkeit ändern möchte dann kann er nicht direkt auf die Eigenschaft momentanGeschwindigkeit zugreifen, weil diese private ist ...
|
... und weil das auch an einem echten Auto nicht geht. In der OOP versucht man, die Wirklichkeit in einem Modell abzubilden, und wenn man dabei Entwurfsfehler macht, kriegt man Modelle, die sich unmöglich verhalten.
Das ist ein gutes Beispiel, man stelle sich vor, die Klasse Auto hätte eine Methode, mit der man die Geschwindigkeit direkt setzen könnte (SetSpeed (int speed_kmh);). Damit käme man von 0 auf 160 in einem Augenblick. Nicht gerade ein realistisches Fahrmodell, oder?
Denkt man das weiter, kommt man dazu, dass das Auto noch nicht mal eine explizite private Eigenschaft "speed_" haben muss, die kann sich auch aus Durchmesser und Umdrehungszahl der Räder ergeben.
Das Schöne ist, dass es überhaupt nicht interessiert, *wie* der Geschwindigkeitswert zustandekommt, sprich, die Innereien der Methode "int GetSpeed () const" sind dem Anwender egal. Dieser Post wurde am 08.09.2008 um 09:09 Uhr von ao editiert. |