Home » Object Pascal » Styleguide

Styleguide

Klassen

Klassenkörper-Organisation

Der Körper einer Klassendeklaration sollte in folgender Reihenfolge organisiert werden:

  • Felddeklarationen
  • Methodendeklarationen
  • Eigenschaftsdeklarationen

Die Felder, Methoden und Eigenschaften Ihrer Klasse sollten alphabetisch nach ihrem Namen angeordnet werden.

Zugriffsebenen

Die Sichtbarkeitsdirektiven sollten – ausgenommen den Code, der von der IDE eingefügt wird – in folgender Reihenfolge deklariert werden:

  • private-Deklarationen
  • protected-Deklarationen
  • public-Deklarationen
  • published-Deklarationen

Es gibt vier Zugriffsebenen für Klassenmitglieder in der Delphi-Sprache: published, public, protected und private – in der Reihenfolge abnehmender Zugriffsrechte. Standardmäßig ist die Zugriffsebende published. Grundsätzlich sollte einem Mitglied die niedrigste Zugriffsebene gegeben werden, die für es geeignet ist. Z. B. sollte ein Mitglied, auf das nur innerhalb der Unit zugegriffen wird auf private-Zugriff gesetzt werden. Auch gibt das Deklarieren geringerer Zugriffsebenen dem Compiler geringere Optimierungsmöglichkeiten. Auf der anderen Seite macht es die Verwendung von private schwierig, die Klasse durch Unterklassen zu erweitern. Wenn es einen Grund gibt, zu glauben, die Klasse könnte in Zukunft Unterklassen bekommen, dann sollten Mitglieder, die von den Unterklassen benötigt werden könnten, als protected statt als private deklariert werden, und den Eigenschaften, die zum Zugriff auf private-Daten verwendet werden, sollte protected-Status gegeben werden.
Sie sollten public-Zugriff auf Daten niemals zulassen. Daten sollten immer im private-Abschnitt deklariert werden, und jeder öffentliche Zugriff sollte über get- oder set-Methoden oder Eigenschaften (Properties) erfolgen.

Konstruktordeklarationen

Methoden sollten alphabetisch angeordnet werden. Es ist richtig, Ihre Konstruktoren und Destruktoren entweder an den Anfang der Liste im public-Abschnitt zu setzen oder sie in die alphabetische Ordnung im public-Abschnitt einzuordnen.
Wenn es mehr als einen Konstruktor gibt und wenn sie allen denselben Namen geben, sortieren Sie sie lexikalisch nach der formalen Parameterliste, wobei Konstruktoren, die mehr Parameter haben, immer nach denen mit weniger Parametern kommen. Das setzt voraus, dass ein Konstruktor ohne Argumente (wenn es einen gibt) immer der erste ist. Für größt mögliche Kompatibilität zum C++-Builder, versuchen Sie, die Parameterlisten Ihrer Konstruktoren eindeutig zu machen. C++ kann Konstruktoren nicht über ihren Namen aufrufen, so dass der einzige Weg, zwischen mehreren Konstruktoren zu unterscheiden, die Parameterliste ist.

Methodendeklarationen

Wenn möglich, sollte eine Methodendeklaration in einer einzigen Zeile erscheinen.
Beispiel:

// Die umgebrochene Zeile ist zwei Leerzeichen von links ausgerichtet
procedure ImageUpdate(Image img, infoflags: Integer,
  x: Integer, y: Integer, w: Integer, h: Integer)