![]() |
Partielle Klassen
Hi,
ich meine in Erinnerung zu haben, vor gar nicht langer Zeit, alte Fotos und Texte gelesen zu haben, in der es möglich war, Klassen über mehrere Units zu verteilen - partielle Klassen bzw. partial classes also. Der entsprechende Code war auch auf dem Foto zu sehen
Delphi-Quellcode:
Nun... weder mein Delphi 2005, noch das Turbo Delphi verstehen das Schlüsselwort partial. Liegt das daran, dass es bisher noch nicht implementiert wurde, obwohl es mal angekündigt wurde oder ist das ein Feature, das definitiv mit Delphi in Zusammenhang stand?
// erste Unit
type TPartClass = partial class public procedure InUnit1; end; // zweite Unit type TPartClass = partial class public procedure InUnit2; end; Chris |
Re: Partielle Klassen
Diese Features sollen mit der nächsten Version von Delphi (Highlander) kommen, aber höchstwahrscheinlich nur im .Net-Teil
|
Re: Partielle Klassen
Zitat:
Alle Fragmente liegen in einer eigenen Unit und du kannst nur die Member benutzen, deren Fragmente in der uses clause eingetragen sind. Zumindest ist das das was ich mir aus ein paar Screen casts von Nick Hodges zusammenreimen konnte. |
Re: Partielle Klassen
Ich meine, das das mit dem Schlüsselwort partitial zumindest in #develop oder Visual Studio ging ... :gruebel: Ich glaube, es war #develop das das sogar standardmäßig für die Formular-initialisierungsroutine benutzt ...
|
Re: Partielle Klassen
Die Dinger werden seit 2.0 bei jeglichem generierten Code eingesetzt (Winforms, WPF, Asp.Net, DataSets, Web Services, ...), denn genau dafür wurden sie ja eingeführt ;) . In reinem User-Code sind sie eher unnütz, höchstens noch mit dieser Ausnahme:
SDK When working on large projects, spreading a class over separate files allows multiple programmers to work on it simultaneously. Partial Classes sind deshalb für jede 2.0-Sprache ein Muss. |
Re: Partielle Klassen
Hi,
@jfheins: dass das in anderen Sprachen (z.B. C#) geht, weiß ich. Es geht mir auch wirklich nur um Delphi für Win32. @Khabarakh: für unnütz halte ich partielle Klassen ganz und gar nicht. Auch dass der einzige Vorteil sei, dass man damit in größeren Projekten mit mehreren Entwicklern an einer Klasse arbeiten kann, halte ich für falsch. Das ist sicherlich richtig, dass das möglich ist (ist aber auch so schon möglich, dank intelligenten Subversion-Systemen), aber jeder, der schonmal große Klassen geschrieben hat, weiß, dass eine Unit schon verdammt groß werden kann - Modularität hin oder her. Außerdem fände ich es praktisch, nur einen bestimmten Teil einer Klasse einzubinden. Auch wenn das möglich wäre, wenn ich die Klasse in zwei Klassen aufteile. Also, ich sehe schon Vorteile - auch für die Win32-Entwicklung. Aber dass die "coolen Features" zum Großteil nur Einzug in .NET erhalten, ist ja inzwischen auch Fakt. Naja, weiß ich wenigstens, dass ich mich nicht getäuscht habe und doch mal davon gelesen habe. Danke für eure Antworten, Chris |
Re: Partielle Klassen
Das mag deine Meinung sein, aber für mich riechen partial Classes nach Designschwäche und ich stehe mit dieser Meinung auch nicht
![]() Zitat:
|
Re: Partielle Klassen
Tja. Bei mir ist es mal wieder soweit. Ich versuche mir den Sinn und Zweck von partial class vozustellen. Aber so richtig komme ich nicht dahinter.
Zitat:
Delphi-Quellcode:
Ich finde diese Definition viel eleganter.
// erste Unit
type TBaseClass = class(Tobject) public procedure InUnit1; end; // zweite Unit type TMainClass = class(TBaseClass); public procedure InUnit2; end; Gebt mir Input. Was macht partial class so nützlich. Gerd |
Re: Partielle Klassen
Zitat:
Hauptsächlich sprachunabhängige Codegeneratoren. Aber um es mit Ach & Krach irgendwie auf native Delphi stülpen zu können nehmen wir den XML Databinding wizzard. Stell' dir vor, der generiert dir deine Klassen aus einem XSD, aber du willst irgendwo in einem der generierten Vorfahren eine weitere Eigenschaft oder ein Interface unterbringen. Mit Partial classes (oder vllt auch class fragments) wäre das gar kein Problem. Die Klasse ist nicht auf das Stück festgelegt, das der Code generator ausgespuckt hat. Du kannst also deine eigenen Erweiterungen in die Klasse packen ohne alles zu verlieren wenn der Code neu generiert werden muss. |
Re: Partielle Klassen
Gibt es eigentlich CodeGeneratoren für Delphi-Klassen.
Habe einige DBEdits und DBMemos abgeleitet, die ähnliche Funktionen in sehr ähnlichen Klassen abarbeiten. Das müßte man doch einfach generieren können?!? Grüße // Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 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