====== 6.4) Programmierstile ====== Quellcode kann **imperativ (z.B. prozedural)** oder **objektorientiert** geschrieben werden. ===== Imperativ ===== Kommt aus dem lateinischen imperare = anordnen d.h. einzelnen Befehle werden **sequentiell hintereinander** geschrieben mittels: * Kontrollstrukturen = Strukturierte Programmierung * Überschaubare Unterprogrammen = Prozedurale Programmierung * Logisch zusammengefassten Unterprogrammen = Modulare Programmierung ==== Vor- und Nachteile==== * für kleine Programme geeignet * i.a. sehr schnell, da Compiler den Code gut optimieren kann * wird schnell unübersichtlich, schwer wartbar, ... ===== Objektorientiert ===== Das Programm wird als **System von Objekten** dargestellt, die **miteinander kommunizieren** (siehe Beispiel objektorientierte Programmierung). {{:inf:inf5bi_201819:6:pasted:20181112-095329.png}} ** Erklärungen:** * Zunächst definiert man **sogenannte Klassen** (z.B. Klasse “Artikel”). Ein Programm kann beliebig viele unterschiedliche Klassen haben (Artikel, Auftrag, Kunde, ...). * Erzeugt man nun einen bestimmten “Artikel” (z.B. Artikel 1, anders gesagt gibt man diesen spezifische Daten), spricht man von einem **Objekt**. * Diesen Vorgang bezeichnet man auch als **das Objekt (Artikel 1) wird von der Klasse (Artikel) instantiiert**. Man kann viele Objekte einer Klasse erzeugen (Artikel 1, Artikel 2, ..). * Jedes Objekt besitzt (anhand der Klassendefinition) **Eigenschaften (Attribute)**, dies sind die Daten (z.B. Nummer, Text, ...) und **Methoden (Algorithmen)**, welche diese Daten ändern, anzeigen, bereitstellen, etc (z.B. auslagern, einlagern, ...). * Ein Hauptprogramm enthält z.B. alle hier dargestellten Objekte in Form von Listen und steuert den Programmablauf inklusive Daten Ein- und Ausgabe. ==== Vor- und Nachteile ==== * für große Programmierprojekte gut geeignet * Konzepte wie Vererbung, Datenkapselung, Polymorhismus, etc umsetzbar