Frage

Was ist der empfohlene Ansatz Basisklassen für die Namensgebung? Ist es die Typenbezeichnung mit " Basis " oder " Zusammenfassung " voranstellen oder würden wir es nur mit Suffix "Base"?

Beachten Sie Folgendes:

Typ: ViewModel z.B. MainViewModel ReportViewModel

Basisklasse: BaseViewModel oder ViewModelBase oder AbstractViewModel

Beachten Sie auch:

Typ: Product z.B. VirtualProduct ExpiringProduct

Basisklasse: BaseProduct oder ProductBase oder AbstractProduct

Was halten Sie für mehr Standard?

ist
class Entity : EntityBase
{
}

oder

class Entity : BaseEntity
{
}
War es hilfreich?

Lösung

Es gibt Beispiele in dem Rahmen mit der Basis Suffix, z.B. System.Configuration.Provider.ProviderBase, System.Web.SessionState.SessionStateStoreProviderBase.

Aber bei weitem nicht alle abstrakten Basisklassen im Rahmen folgen dieser Konvention (z System.Data.Common.DbParameter, System.Data.Common.DbCommand).

Persönlich würde ich mit dem Suffix vermeiden es sei denn, Ich wollte die Tatsache betonen, dass es eine abstrakte Klasse und das Gefühl, dass sonst Benutzer der Klasse der Name eine konkrete Umsetzung, um anzuzeigen, erwarten könnten.

Andere Tipps

Keine der oben Genannten. Überlegen Sie, was Zweck Ihre Basisklasse zur Verfügung stellt; nennen sie das. Zum Beispiel könnte die Basisklasse von Automobil- und Fahrrad Fahrzeug sein.

Wenn Sie Basisklassen sind die Schaffung nur eine Basisklasse von einer Klasse zu haben, und ohne Zweck oder anderen Grund als das, sind Sie wahrscheinlich etwas falsch zu machen.

Wenn Sie sprechen über virtuelle Basisklassen, Microsofts Standard ist ClassnameBase (wie Collection.)

Ich denke, die eine Frage der Wahl. Ich würde sagen, wenn Sie eine Menge von Basisklassen schaffen dann vielleicht ist es besser, mit Baseclass geht immer, weil diese Weise können Sie immer herausfinden können, was Sie Basisklassen beginnen mit nur um Basis eingeben und bekommt den Rest der Hilfe von Intellisense. Was passiert, wenn Sie 20 Basisklassen hatten und von Base als Suffix hinzugefügt und haben Sie vergessen, was der Name der Basisklasse war? Möchten Sie ein Klassendiagramm erstellen zunächst von VS und herauszufinden, welche Basisklassen zur Verfügung stehen? Es ist in Ordnung, sie Classbase zu nennen, wenn es nur ein oder zwei Klassen ist.

Das Gleiche gilt für Entscheidung zwischen GetItems und ItemsGet Funktion. Ich würde aus Gründen der Lesbarkeit sagen atleast - gehen für GetItems. Folgen Sie den Konventionen:)

Wir verwenden BaseEntity, aber ich denke, es ist Ihre eigene Präferenz. Ich sehe oft die andere.

Just konsistent in Ihrem Kontext sein, dass Ihr Projekt, Namensraum oder, wenn möglich, Ihr Team. Verschiedene Konventionen sind schlimmer als eine schlechte Konvention IMHO.

Persönlich würde ich empfehlen das Wort Basis überhaupt gegen das Hinzufügen. Man kann nie wissen, wenn Sie den Code ändern müssen würden um und es wird nicht das Basisobjekt mehr sein. Davon abgesehen, wir dies in der Vergangenheit getan haben, voran wir das Wort Base auf der Vorderseite. Es scheint besser zu fließen.

BaseEntity sieht viel wie Kamel Fall - strName, bseEntity. Ich würde für EntityBase gehen, da er das Thema zuerst definiert, die Sie, es ist Funktion schneller helfen zu identifizieren.

Denken Sie immer über alphabetisiert, wenn Sie Sachen nennen. Ich Blick auf einem SQL-Server nicht wie wirklich und jede gespeicherte Prozedur wird usp namens [etwas]. In der gleichen Richtung, nicht übermäßiger Gebrauch Get und Set als führende Namen für eine Funktion. Statt GetItems oder PlaceOrder, denken Sie an sie als ItemsGet oder OrderPlace zu nennen.

So im Allgemeinen ClassnameBase / EntityBase wäre eine bessere Wahl sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top