AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Partielle Klassen

Ein Thema von CalganX · begonnen am 14. Mai 2007 · letzter Beitrag vom 26. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Partielle Klassen

  Alt 14. Mai 2007, 19:00
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:
// erste Unit
type
  TPartClass = partial class
  public
    procedure InUnit1;
  end;

// zweite Unit
type
  TPartClass = partial class
  public
    procedure InUnit2;
  end;
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?

Chris
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Partielle Klassen

  Alt 14. Mai 2007, 19:03
Diese Features sollen mit der nächsten Version von Delphi (Highlander) kommen, aber höchstwahrscheinlich nur im .Net-Teil
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Partielle Klassen

  Alt 14. Mai 2007, 19:57
Zitat von mkinzler:
Diese Features sollen mit der nächsten Version von Delphi (Highlander) kommen, aber höchstwahrscheinlich nur im .Net-Teil
Die "Class fragments" sind allerdings auch keine direkten partial classes.
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Partielle Klassen

  Alt 14. Mai 2007, 20:09
Ich meine, das das mit dem Schlüsselwort partitial zumindest in #develop oder Visual Studio ging ... Ich glaube, es war #develop das das sogar standardmäßig für die Formular-initialisierungsroutine benutzt ...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Partielle Klassen

  Alt 14. Mai 2007, 20:20
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.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Partielle Klassen

  Alt 14. Mai 2007, 20:34
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
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Partielle Klassen

  Alt 14. Mai 2007, 21:42
Das mag deine Meinung sein, aber für mich riechen partial Classes nach Designschwäche und ich stehe mit dieser Meinung auch nicht alleine da. Sobald ich eine Klasse sinnvoll auf zwei Dateien verteilen kann, sollte sie sich auch stattdessen sinnvoll in eben diese zwei Teile modularisieren lassen. Wenn eine Klasse doch zur Unübersichtlichkeit neigt, lasse ich lieber die IDE arbeiten - durch Code-Faltung allein die Memberdefinitionen anzeigen lassen, was gleichzeitig einen netten, sauberen Klassenüberblick schafft, der Code Explorer tut sein Übriges. Und einer der großen Vorteile bei der Teilung einer Klasse - etliche für diesen Teil unwichtige Member verschwinden aus Intellisense - existiert bei partiellen Klassen auch nicht.
Zitat von CalganX:
Also, ich sehe schon Vorteile - auch für die Win32-Entwicklung.
Delphi-Entwickler müssen durch den Singlepass-Compiler und die Aufteilung in Units statt Namespaces sowieso schon unter exorbitant großen Dateien leiden, da wäre dieses Feature nicht nur ein Tropfen auf den heißen Stein, sondern schon fast sarkastisch - der Delphianer besitzt die Möglichkeit, Klassen aufzusplitten, aber besonders bei großen Projekten nicht einmal den zum Standard gewordenen Luxus, für jede Klasse eine einzelne Datei zu erstellen zu können. Vor der Einführung von partial Classes müssten auf jeden Fall erst diese zwei Aspekte entsprechend angepasst werden (schon allein weil wohl niemand für die Benutzung einer einzigen partiellen Klasse mehrere Units einbinden will). Ich hoffe, eventuelle entsprechende Ankündigungen nicht verschlafen zu haben .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Partielle Klassen

  Alt 14. Mai 2007, 22:27
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 von CalganX:
Delphi-Quellcode:
// erste Unit
type
  TPartClass = partial class
  public
    procedure InUnit1;
  end;

// zweite Unit
type
  TPartClass = partial class
  public
    procedure InUnit2;
  end;
Wenn ich eine Klasse in zwei Units aufteilen möchte, dann würde ich mir in der ersten Unit ein Basisklasse anlegen, und in der zweiten Unit eine abgeleitete Klasse. Damit habe ich in der zweiten Klasse Zugriff auf alle Proceduren.

Delphi-Quellcode:
// erste Unit
type
  TBaseClass = class(Tobject)
  public
    procedure InUnit1;
  end;

// zweite Unit
type
  TMainClass = class(TBaseClass);
  public
    procedure InUnit2;
  end;
Ich finde diese Definition viel eleganter.


Gebt mir Input. Was macht partial class so nützlich.


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Partielle Klassen

  Alt 14. Mai 2007, 22:46
Zitat von bernau:
Gebt mir Input. Was macht partial class so nützlich.
Um es mal ganz ungeschminkt und direkt zu sagen: Alteingesessene Delphianer ohne tieferen Einblick in java oder .Net haben gar nicht die Tools zur Hand, die in Java und .Net alltäglich sind.
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#10

Re: Partielle Klassen

  Alt 26. Mär 2010, 16:29
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
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz