Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Klassendesign - wie umgehen mit bedingten Eigenschaften?

  Alt 21. Dez 2015, 20:15
Nenne die Methode doch lieber 'TryGetValue', dann passt das zu 'TryStrToInt' etc.
Verbesserungsvorschlag akzeptiert.

Ich würde das wirklich als 2 Properties abbilden, genauso, wie Du das gemacht hast. Man kann das auch mit Variants abbilden ('Null' oder 'UnAssigned') wäre dann 'HasFoo=False', aber das hat den Nachteil, das Du hier zwei Aussagen 'Wert ist vorhanden' und 'Wert' kodierst. Das spart vielleicht ein wenig Tipparbeit, aber kodieren von Information ist immer blöd.
Bei zwei Properties hat man das Problem, dass jemand eventuell nur die Property "Bar" sieht und gar nicht auf dem Schirm hat, dass es passieren könnte, dass der Wert nicht existiert, und es daher auch nicht prüft. Ich finde, sowas sollte man von vornherein ausschließen, wenn es geht. Ich setze mir immer als Ziel, dass nur legale Methodenaufrufe möglich sein sollen (lässt sich natürlich nicht immer erreichen).
  Mit Zitat antworten Zitat