Eine Partielle Klasse ist ein Begriff aus der objektorientierten Programmierung und bezeichnet eine Vorgangsweise, Klassen in mehrere Quellcodedateien aufzuteilen oder an verschiedenen Orten innerhalb einer Datei zu deklarieren.
Gründe Erhöhung der Lesbarkeit bei sehr großen Klassen. Unter Umständen kann sich eine zu starke Aufteilung des Codes negativ auf das Codeverständnis auswirken, da mehrere Dateien parallel betrachtet werden müssen, um das Gesamtbild zu erhalten. Verschiedene Entwickler können an derselben Klasse arbeiten, ohne sich gegenseitig zu behindern. Separation von Schnittstelle und Klassendefinition oder auch von public und private Bereichen. Separation of Concerns, ähnlich wie in der aspektorientierten Programmierung. Trennung von automatisch erzeugtem Code eines Codegenerators und manuell vom Menschen geschriebenem Code. Der generierte Code kann so einfacher jederzeit aktualisiert werden, ohne dass sich beide Stellen gegenseitig stören.
Programmiersprachen Das Konzept der partiellen Klassen wird vor allem von Programmiersprachen der Firma Microsoft für die .NET-Plattform, das .Net-Framework und die Windows Runtime (WinRT) unterstützt. Dazu zählen C#, Visual Basic .NET, C++/CLI und C++/CX. In diesen Programmiersprachen müssen betroffene Klassen explizit mit dem Schlüsselwort partial gekennzeichnet werden. Auch TypeScript unterstützt partielle Klassen. Die Kennzeichnung erfolgt jedoch implizit, indem Teilklassen einfach denselben Namen tragen müssen. Das Verfahren wird hier als Declaration Merging bezeichnet.
Beispiel: Separation of Concerns Partielle Klassen unterstützen auch Separation of Concerns. Das folgende C#-Beispiel zeigt eine Klasse Bear, die verschiedene Aspekte besitzt. Diese sind in mehreren Dateien implementiert.
Bear_Hunting.cs public partial class Bear { private IEdible Hunt()
// Gibt Nahrung zurück...
Bear_Eating.cs public partial class Bear { private int Eat(IEdible food)
return food.Nutrition.Value;
Bear_Hunger.cs public partial class Bear { private int hunger;
public void MonitorHunger()
// An dieser Stelle beziehen wir uns auf Methoden, die in den anderen partiellen Klassen definiert sind if(hunger > 50) hunger -= this.Eat(this.Hunt());
Durch Anwendung von partiellen Klassen ist es sehr leicht möglich, Programmeigenschaften durch das Hinzufügen von Quellcodedateien zu erweitern, indem zusätzliche Dateien kompiliert werden. Es kann sich dabei beispielsweise um Features handeln, die einem Kunden gegen einen Aufpreis angeboten werden.
Siehe auch Erweiterungsmethode
Einzelnachweise
Kategorie:Objektorientierte Programmierung
en:Class (computer programming)#Partial