2010-12-09 5 views

Antwort

2

Der Hauptzweck des Konstruktors besteht darin, den Kontext der Objekterstellung (Parameter, Umgebung ...) zu validieren und die Instanz zu initialisieren, bevor irgendeine Methode aufgerufen werden kann.

Zum Beispiel, einer von FileStream Konstruktoren nimmt einen Dateipfad und Datei-Modus in Parameter und wird eine Ausnahme auslösen, wenn die Datei nicht existiert.

IMO, solange Ihr Code ist Validierung/Initialisierung Logik, es ist perfekt in einem Konstruktor gültig, auch wenn es eine Menge Code darstellt. Was fischig sein kann, ist Code in einem Konstruktor, der nicht mit der Validierung des Kontextes oder der Initialisierung der Instanz zusammenhängt.

0

Unabhängig davon, ob könnte der Code möglicherweise eine Ausnahme auslösen eine Sache, die ich in Konstrukteuren vermeiden. Ich versuche, Konstruktorcode zu begrenzen, um das Objekt streng zu initialisieren, und nur in Fällen, in denen Standardwerte nicht ausreichen - und das kommt nicht zu oft vor.

Verwandte Themen