4 Stimmen

.NET-Namenskonvention für Klassendefinition vs. Formular

Ich habe eine Menge in .NET-Windows-Formularen entwickelt, und sie sind alle so benannt, wie sie sind, ohne Präfixe. Allerdings muss ich oft eine andere Klasse deklarieren, die die Spaltennamen enthält, die das Formular verwendet.

Ich habe zum Beispiel eine Klasse namens Address, die ein Formular für die Verwaltung von Adressen ist. Ich benötige jedoch auch eine Klasse, die ich ebenfalls Adresse nennen möchte und die im Grunde nur die Deklarationen der Felder Name und Adresse enthält. Ich bin auf der Suche nach einer guten Namenskonvention zur Unterscheidung zwischen den beiden (der Klassendefinition und dem Formular).

12voto

Pavel Minaev Punkte 97251

Die normale Konvention für Windows Forms ist es, den Namen von Formularklassen mit Form . Ihre Klasse für die Adresse sollte also nur heißen Address (denn schließlich handelt es sich um eine Adresse), aber das Formular, das zur Bearbeitung von Adressen verwendet wird, sollte AddressForm (oder AddressListForm , oder AddressEditorForm usw. - je nachdem, was sie genau tun).

1 Stimmen

Das ist keine ungarische Notation - ungarisch ist die Verwendung von abgekürzten Präfixen.

0 Stimmen

Der SharpDevelop C# Coding Style Guide ( icsharpcode.net/TechNotes ) bezeichnet dies als ungarische Notation: "8.2. Benennungsrichtlinien Die ungarische Notation ist ein definierter Satz von Prä- und Postfixen, die auf Namen angewandt werden, um den Typ der Variablen wiederzugeben. Diese Art der Namensgebung war weit verbreitet" Wikipedia verweist nur auf ein Präfix. Ob es sich nun um ein Post- oder ein Präfix handelt, macht keinen Unterschied, es ist die Name impliziert die Typ ist die ungarische Notation.

1 Stimmen

Man könnte argumentieren, dass der Name in diesem Fall nicht auf den Typ, sondern auf die Funktionalität verweist. Zufälligerweise stimmen diese beiden überein (was in der OO nicht weiter verwunderlich ist, da eine Klasse eine Abstraktion ist, die genau das erfassen soll). Andernfalls könnten wir an den Punkt gelangen, an dem Foo foo = new Foo() würde als ungarische Notation gelten...

8voto

Andrew Hare Punkte 332190

Vielleicht das?

class Address { }
class AddressForm { }

3voto

David Basarab Punkte 69965

Utilice Namespaces .

Ihr Formular könnte also im Namespace

YourCompanyName.UI.WinForms.Address

Ihr Wertobjekt könnte sein

YourCompanyName.Business.Values.Address

Dann können Sie einfach den vollständigen Namensraum verwenden, um auf sie zu verweisen.

2 Stimmen

Das könnte sehr schnell sehr verwirrend werden.

0 Stimmen

@Andrew Hare: Stimmt, aber er wollte Address sowohl für den Formularnamen als auch für das Wertobjekt, der einzige Weg dazu ist mit Namespaces. Ich würde Ihre Methode von AddressForm und Address bevorzugen.

1voto

Daniel Brückner Punkte 57561

Ich schlage vor Address y AddressForm (oder AddressEditor oder so ähnlich), auch. Benennung des Formulars Address erscheint mir schlichtweg falsch - die Klasse steht nicht für eine Adresse, sondern für ein Formular zur Anzeige oder Bearbeitung von Adressen.

0voto

Marco Guignard Punkte 601

Wenn das Formular ein modales Formular sein soll, können Sie Dialog anstelle von Formular als Suffix verwenden.

Außerdem werde ich die Schlüsselwörter Editor, Eigenschaften oder Browser verwenden, um den Zweck der Formulare anzugeben.

AddressEditorForm, AddressPropertiesForm sind besser als AddressForm.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X