Registriert seit: 6. Aug 2010
Ort: Dornbirn
151 Beiträge
Delphi 11 Alexandria
|
AW: Constructor Rückgabewert nil-en statt Instanz zurückzugeben?
11. Apr 2018, 12:13
Wäre dann TFilestream.create ein Antipattern? dort wird ja auch im Constructor die Datei geöffnet.
Ein TFileStream klatscht dir mit einer Exception um die Ohren, wenn die Datei aus welchen Gründen auch immer nicht geöffnet werden kann und überlässt dir nicht nil oder eine unbrauchbare Instanz - und das ist dann auch eine Ausnahme.
Da ich nicht der "niemals/immer" Typ bin, bin ich persönlich keineswegs gegen alles außer Zuweisungen im Konstruktor. Wenn das, was dort geschieht zur Objektinitialisierung dient - und ein TFileStream ist ja nunmal dafür da (gut, man könnte jetzt argumentieren, dass das eigentliche Öffnen in einer Open Methode geschehen sollte), dann lass ich das durchaus zu.
Davon abgesehen ist die RTL und VCL aber keineswegs das Maß der Dinge, wenn es um guten Stil oder Befolgung von Patterns geht
This!
Eventuell auch in diesem Zusammenhang für den Threadersteller interessant: Dependency Injections von Nick Hodges ( https://leanpub.com/dependencyinjectionindelphi)
(Stevie brauchts hws nicht mehr lesen )
Peter Was mache ich, wenn ein Bär meine Frau angreift?
Nichts. Er hat sie angegriffen, soll er doch selber sehen, wie er sich verteidigt.
Geändert von bytecook (11. Apr 2018 um 12:18 Uhr)
|