![]() |
Klasse explizit von TObject ableiten - spricht was dagegen?
Hallöchen,
ich baue mir gerade diverse Klassen und leite diese explizit von TObject ab:
Delphi-Quellcode:
Nun könnte man diese Deklaration auch vereinfachen:
type
t_meineKlasse = Class(TObject) ...
Delphi-Quellcode:
type
t_meineKlasse = Class ... Nun habe ich aber dunkel im im Hinterkopf, hier in der DP Einwände gegen meine Deklaration gelesen zu haben. :gruebel: Auf der anderen Seite wird eine Klasse doch so oder so von TObject abgeleitet, wenn nichts Anderes angegeben wurde - oder? Demnach müssten beide Vorgehensweisen identisch sein...? Könnte mir irgendwer noch 'was Kluges dazu sagen? |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Zitat:
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
Also läuft es auf die Übersichtlichkeit bzw. Wartbarkeit hinaus? Demnach wären diese beiden Lösungen aus technischer Sicht identisch.
Ich empfinde die explizite Deklaration als deutlich angenehmer zu lesen und bevorzuge sie nicht ohne Grund. |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Zitat:
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
Ich meine, ich hätte auch mal so was gehört, dass man Klassen ohne Basis-Klasse nicht von TObject ableiten sollte. Meines Wissen war da irgendwas mit dem "alten" Object Pascal und Delphi. Weiß aber auch nicht mehr.
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
Moin Luckie,
was meinst Du mit "Klasse ohne Basisklasse"? Wenn Du eine neue Klasse erstellst, wirst Du sie immer von einer anderen ableiten (und sei es TObject), und eben diese wäre dann die Basisklasse. |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Klar leitet man immer von etwas ab. Nur habe ich gelesen, dass wenn man von TObject ableiten will, die Klasse TObject nicht angeben soll. Warum auch immer.
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
Moin Luckie,
dazu wäre eine Begründung allerdings wirklich nicht schlecht... Ich finde die Angabe von TObject stellt doch eine nützliche Dokumentation dar, und das Ergebnis ist mit und ohne Angabe ja eh' das gleiche. |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Wenn ich nur wüßte wo ich das gelesen habe. Daniel hatte ja auch so was im Hinterkopf, also scheint da doch irgendwas zu sein.
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
Kann es sein, daß ihr
Delphi-Quellcode:
und
type
TEtwas = class(TObject)
Delphi-Quellcode:
durcheinander bringt?
type
TEtwas = Object Edit: Bin ansonsten der festen Meinung, daß mit oder ohne Angabe des Basistypen beides gleich gehandhabt wird |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Nein bringen wir nicht.
|
Re: Klasse explizit von TObject ableiten - spricht was dageg
class und class(TObject) sind ein und das selbe (siehe Delphi-Hilfe).
Bei der JCL und JVCL bestehen wir auf class(TObject) und entsprechend im Konstruktor immer auf inherited Create. Der Vorteil ist, das sich die Sourcen dann viel leichter umarbeiten lassen wenn man mal beispielsweise eine Debugging-Klasse dazwischenschieben will. class alleine bleibt den forward-Deklarationen vorbehalten. Damit heben diese sich ab. |
Re: Klasse explizit von TObject ableiten - spricht was dageg
Also soweit ich weiß gibt es da keinen Unterschied, aber Lucki hat schon recht der Übersicht halber schaut es so schon besser aus.
Weil warum sollte es schlechter sein das expilizit hinzuschreiben? Außer das man vielleicht "1 Wort" mehr schreibt. Der Compiler erkennt es so oder so und denke nicht das er irgendeinen Unterschied macht, geschweige denn das Prog langsamer wird oder irgendwas dergleichen. Do It! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 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-2025 by Thomas Breitkreuz