![]() |
AW: Methoden-Deklaration vorgeben?
Tippen an sich sollte man noch jedem zutrauen können :-D
Es sollte ja nicht darum gehen, weniger Tasten drücken zu müssen, sondern das ganze leichter wartbar zu machen und die Gelegenheit hier etwas falsch oder uneinheitlich zu machen zu entfernen. Wenn ich mittels Interface oder Oberklasse die Signatur schon vorgebe (wie z.B. bei Sir Rufo) erreiche ich das ja. Nur meiner Meinung nach für so klitzekleine Dinge wie in meinem Beispiel trotzdem etwas ... oversized. In zwei Jahren hat sich das ganze zwar garantiert dermaßen aufgebläht dass ich weinend am Boden liege und jammere "Warum habe ich nicht gleich auf ihn gehört", aber trotzdem :spin: |
AW: Methoden-Deklaration vorgeben?
Zitat:
Aber falsch ist die Vorgehensweise trotzdem. So. ;-) Bei VS bzw. Resharper geht das ganz einfach:
Code:
ALT-Enter, Enter, fertig (Refactoring "Implement Methods" wird ausgeführt). Gibts da was für Delphi?
class MyNewClass : IMyMethod{}
Zitat:
Gewöhne Dir das einfach an. Factories sind soooo praktisch und dir wird alle Nase lang etwas über den Weg laufen, wo Du anhand eines Tokens (String, Enum, sonstewas) eine Methode aufrufen musst. |
AW: Methoden-Deklaration vorgeben?
Zitat:
Zitat:
|
AW: Methoden-Deklaration vorgeben?
Zitat:
Klassendeklaration hinschreiben inkl. end, vor dem end bleiben, Strg + Leertaste, zu implementierende Methoden des Interfaces aus der Liste auswählen, Enter (jetzt stehen sie da inkl. public), Strg + Shift + C, fertig. ;-) |
AW: Methoden-Deklaration vorgeben?
@jaenicke :thumb:
Obwohl mich das
Delphi-Quellcode:
eher stört, das verleitet einige statt dem Interface, die Klassen-Instanz zu benutzen.
public
Also definiere ich die Klassen entweder im
Delphi-Quellcode:
-Abschnitt (Zugriff dann über eine Factory) oder deklariere diese Methoden als
implementation
Delphi-Quellcode:
.
protected
|
AW: Methoden-Deklaration vorgeben?
Mit geschachtelten Funktionen lässt sich das "Problem" lösen:
Delphi-Quellcode:
procedure AllInOneHandler(input1: Integer; input2: TSomeClass; out output: Double);
procedure proc1; // hat Zugriff auf die Parameter der äusseren Funktion oder Methode begin end; procedure proc2; // so was von dry - dryer geht's nicht begin end; begin if ankommendesPaket.commandStr = 'zooBesuch' then proc1 else if ankommendesPaket.commandStr = 'zirkusBesuch' then proc2 else ... end; |
AW: Methoden-Deklaration vorgeben?
Zitat:
Das Interface deklarierst du ja hoffentlich nicht in der selben Unit wie das Objekt, oder? Wer dann die Unit mit dem Objekt extra nimmt, ist selbst schuld... Nebenbei kann man bei XE4 anders als früher auch problemlos den Interface-Zeiger wieder auf die Objektinstanz casten (mit as). Auch noch nebenbei: Das Überschreiben von Elternmethoden funktioniert analog inkl. override dahinter. ;-) Das public wieder zu entfernen ist jedenfalls deutlich weniger Arbeit als alles manuell zu kopieren usw. ;-) |
AW: Methoden-Deklaration vorgeben?
Zitat:
Zitat:
Interface-Methoden sollten public sein, schließlich verwendet man sie ja 'öffentlich', auch wenn die Klasse an sich nicht verfügbar sein sollte. |
AW: Methoden-Deklaration vorgeben?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz