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.

  • Erhöhung der Lesbarkeit bei sehr großen Klassen.
  • 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.(1)
  • 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.

Separation of Concerns

Bearbeiten

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.