2008-08-11 6 views
0

In den letzten Jahren habe ich mich von einer langen fließenden Seite von Steuerelementen, die ich versteckt habe, zu einer Vielzahl von Benutzersteuerelementen verändert. Ich hatte immer ein bisschen eine Diskussion zwischen Kollegen über Best Practices..NET-Schnittstellen

Haben Sie Eigenschaften, die Sie ausfüllen, oder verwenden Sie parametrisierte Subs, um die Informationen in Ihre Steuerelemente zu laden?

Teil meiner Angst vor der Verwendung von Parameters ist die Tatsache, dass ich nicht sicherstellen kann, dass alles bevölkert sein wird.

Was ist die Grundregel für die Verwendung von Schnittstellen? Ich habe noch nie einen erstellt. Und sollte ich das versuchen oder mit einer 'Sub-load' bleiben?

Antwort

1

Ich bin mir nicht sicher, ob Schnittstellen Ihnen hier sehr helfen werden. Mein Verständnis ist, dass Sie eine Seite in eine Gruppe von "zusammengesetzten" Benutzersteuerelementen zerlegen, die andere Steuerelemente enthalten, und Sie möchten entscheiden, ob Eigenschaften zum Festlegen von Werten verwendet werden sollen.

Ich denke, das hängt wirklich davon ab, wie die Benutzersteuerelemente entworfen werden und ob sie dynamisch zu einer Seite usw. hinzugefügt werden (ein mögliches Szenario). Ich habe eine persönliche Vorliebe für das Angeben von Zeugs in einem Konstruktor oder das Verwenden einer Factory-Methode zum Erstellen von Steuerelementen. Ich übernehme Verantwortung bei der Erstellung, um sicherzustellen, dass alles eingestellt ist. Meine Erfahrung mit Eigenschaften ist, dass ich manchmal vergessen werde, etwas zu setzen und meinen Fehler nicht zu erkennen. Ihr Punkt über das Festlegen von Eigenschaften oder die Verwendung eines Subs, und alles, was ausgefüllt wird, macht für mich keinen großen Sinn. Wenn Sie irgendeine Art von Abhängigkeit haben und etwas anderes benötigen, um geladen zu werden, dann könnte dies passieren, unabhängig davon, ob es sich um eine Eigenschaft oder eine Untereinheit handelt.

Ich würde auf jedes Buch auf VB.NET/C#/OOP verweisen, um die Syntax für Schnittstellen zu sehen. Schnittstellen beschreiben grundsätzlich einen Vertrag für eine Klasse. Wenn Sie Klasse A und B haben und beide eine Schnittstelle namens ITime implementieren, stellen beide alle Methoden bereit, die in ITime definiert sind. Sie können immer noch ihre eigenen Methoden hinzufügen, aber sie müssen mindestens eine Implementierung von ITimes Methoden beinhalten (zB haben wir GetDate(), GetCurrentTime() als Methoden auf ITime). Eine Schnittstelle teilt Klasse A oder B nicht mit, wie diese Methoden funktionieren sollten - nur ihr Name, Parameter und Rückgabetyp. Nachschlagevererbung in einem OOP-Buch für weitere Informationen dazu, wie sich die Vererbung von Schnittstellen von der Vererbung von Implementierungen unterscheidet.