Thread OOP Programmierstil (20 answers)
Opened by rosti at 2011-03-24 09:52

clms
 2011-03-24 12:41
#146865 #146865
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2011-03-24T09:09:32 renee
Außerhalb der Klasse ändere ich *NIE* Objektinterna. Das widerspricht der Kapselung, die man mit Objektorientierung auch erreichen will. Außerdem ist bei direkten Zugriffen auf den Hash immer die "Gefahr" der Typos da. Deswegen lege ich in Klassen eine API fest, über die auf die Objektinterna zugegriffen wird.

Bei mir gilt auch da: Keine Regel ohne Ausnahme!

Ich habe manchmal "verwandte" Objekte (z.B. um komplexe Datenstrukturen abzubilden). Diese Objekte dürfen sich dann gegenseitig die Interna manipulieren. Innerhalb der "Sippe" gibt es keine Kapselung. Wenn sich bei einer Klasse die interne Implementierung ändert, muss die "Verwandtschaft" ggf. angepasst werden.

Eine Kapselung gibt es dort nur nach außen. Oft fehlen im API sogar Methoden um bestimmte Objekteigenschaften zu ändern, weil sie von außerhalb der "Sippe" nicht (oder nur indirekt) geändert werden sollen.

View full thread OOP Programmierstil