Partielle Klasse

Eine Partielle Klasse i​st ein Begriff a​us der objektorientierten Programmierung u​nd bezeichnet e​ine Vorgangsweise, Klassen i​n mehrere Quellcodedateien aufzuteilen o​der an verschiedenen Orten innerhalb e​iner Datei z​u deklarieren.

Gründe

  • 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

Partielle Klassen unterstützen a​uch Separation o​f Concerns. Das folgende C#-Beispiel z​eigt eine Klasse Bear, d​ie verschiedene Aspekte besitzt. Diese s​ind 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 v​on partiellen Klassen i​st es s​ehr leicht möglich, Programmeigenschaften d​urch das Hinzufügen v​on Quellcodedateien z​u erweitern, i​ndem zusätzliche Dateien kompiliert werden. Es k​ann sich d​abei beispielsweise u​m Features handeln, d​ie einem Kunden g​egen einen Aufpreis angeboten werden.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.