© best_vector/Shutterstock.com
Windows Developer
Funktional vs. objektorientiert - zwei Paradigmen im Praxisvergleich

Wer weniger schreibt, ist schneller fertig!

Wer Software entwickelt, baut Modelle und bildet damit die Realität ab. Die meisten Probleme werden mithilfe von Klassenstrukturen gelöst. Zunehmend finden sich jedoch auch Konzepte der funktionalen Programmierung. Nicht immer muss man sich ausschließlich für den einen oder anderen Ansatz entscheiden, sondern kann sich jeweils die passende Vorgehensweise heraussuchen.

Veikko Krypczyk, Elena Bochkor


Seit vielen Jahren entwickeln die meisten Programmierer ihre Software mithilfe des objektorientierten Ansatzes. Dabei wird die Welt durch Klassenstrukturen abgebildet, die sich in einer hierarchischen Beziehung zueinander befinden. Die typischen Prinzipien der objektorientierten Programmierung sind die Kapselung, das Geheimnisprinzip, die Vererbung, die Generalisierung/Spezialisierung und der Polymorphismus. Diese Prinzipien sind allen Lesern gut bekannt und müssen aus diesem Grund hier nicht nochmals erläutert werden. Jede Programmiersprache, die die objektorientierte Vorgehensweise unterstützt, setzt diese Eckpfeiler der Objektorientierung etwas anders um; im Großen und Ganzen gleichen sich die Konzepte jedoch. Im Umfeld von .NET verwenden die meisten Entwickler seit vielen Jahren C#; alternativ Visual Basic. Microsoft selbst hat jedoch C# als Sprache für die professionelle Verwendung benannt. Mit jeder neuen Version von C# wurden auch die Möglichkeiten der objektorientierten Programmierung erweitert. Ein bekanntes und oft verwendetes Beispiel ist die Verkürzung der Schreibweise bei den get- und set-Methoden (Getter und Setter).

Der objektorientierte Programmieransatz ist jedoch nicht alternativlos. In Theorie und Praxis kennt und verwendet man weitere Programmierparadigma. Dazu zählen bekanntermaßen [1]:

Imperative Programmierung: Imperative Programme bestehen aus Folgen von Anweisungen. Diese Anweisungen enthalten Zuweisungen, die bei der Ausführung Werte von Variablen und damit den Programmzustand verändern. Verzweigungen im Programm werden durch Bedingungen mithilfe von Variablen entschieden. Funktionen haben Argumente und können an unterschiedlichen Stellen im Programm aufgerufen werden, um Verallgemeinerungen zu erreichen. Klassische Algorithmen sind üblicherweise Folgen von Programmanweisungen und werden damit im imperativen Programmierstil umgesetzt. An unterschiedlichen Stellen innerhalb des Algorithmus finden Fallunterscheidungen wiederum anhand der Werte von Variablen statt. In diesem Sinne findet sich der imperative Programmierstil auch heute in den meisten objektorientierten Programmen wieder. Algorithmen, zum Beispiel Berechnungen, werden in die Methoden der Klassen integriert. Ein Sonderfall bzw. eine Form der Vermischung dieser beiden Programmierparadigmen sind dabei statische Klassen. Die Methoden einer statischen Klasse können dabei aufgerufen werden, ohne dass zunächst ein Objekt einer solchen Klasse erzeugt werden muss. Statische Kla...

Windows Developer
Funktional vs. objektorientiert - zwei Paradigmen im Praxisvergleich

Wer weniger schreibt, ist schneller fertig!

Wer Software entwickelt, baut Modelle und bildet damit die Realität ab. Die meisten Probleme werden mithilfe von Klassenstrukturen gelöst. Zunehmend finden sich jedoch auch Konzepte der funktionalen Programmierung. Nicht immer muss man sich ausschließlich für den einen oder anderen Ansatz entscheiden, sondern kann sich jeweils die passende Vorgehensweise heraussuchen.

Veikko Krypczyk, Elena Bochkor


Seit vielen Jahren entwickeln die meisten Programmierer ihre Software mithilfe des objektorientierten Ansatzes. Dabei wird die Welt durch Klassenstrukturen abgebildet, die sich in einer hierarchischen Beziehung zueinander befinden. Die typischen Prinzipien der objektorientierten Programmierung sind die Kapselung, das Geheimnisprinzip, die Vererbung, die Generalisierung/Spezialisierung und der Polymorphismus. Diese Prinzipien sind allen Lesern gut bekannt und müssen aus diesem Grund hier nicht nochmals erläutert werden. Jede Programmiersprache, die die objektorientierte Vorgehensweise unterstützt, setzt diese Eckpfeiler der Objektorientierung etwas anders um; im Großen und Ganzen gleichen sich die Konzepte jedoch. Im Umfeld von .NET verwenden die meisten Entwickler seit vielen Jahren C#; alternativ Visual Basic. Microsoft selbst hat jedoch C# als Sprache für die professionelle Verwendung benannt. Mit jeder neuen Version von C# wurden auch die Möglichkeiten der objektorientierten Programmierung erweitert. Ein bekanntes und oft verwendetes Beispiel ist die Verkürzung der Schreibweise bei den get- und set-Methoden (Getter und Setter).

Der objektorientierte Programmieransatz ist jedoch nicht alternativlos. In Theorie und Praxis kennt und verwendet man weitere Programmierparadigma. Dazu zählen bekanntermaßen [1]:

Imperative Programmierung: Imperative Programme bestehen aus Folgen von Anweisungen. Diese Anweisungen enthalten Zuweisungen, die bei der Ausführung Werte von Variablen und damit den Programmzustand verändern. Verzweigungen im Programm werden durch Bedingungen mithilfe von Variablen entschieden. Funktionen haben Argumente und können an unterschiedlichen Stellen im Programm aufgerufen werden, um Verallgemeinerungen zu erreichen. Klassische Algorithmen sind üblicherweise Folgen von Programmanweisungen und werden damit im imperativen Programmierstil umgesetzt. An unterschiedlichen Stellen innerhalb des Algorithmus finden Fallunterscheidungen wiederum anhand der Werte von Variablen statt. In diesem Sinne findet sich der imperative Programmierstil auch heute in den meisten objektorientierten Programmen wieder. Algorithmen, zum Beispiel Berechnungen, werden in die Methoden der Klassen integriert. Ein Sonderfall bzw. eine Form der Vermischung dieser beiden Programmierparadigmen sind dabei statische Klassen. Die Methoden einer statischen Klasse können dabei aufgerufen werden, ohne dass zunächst ein Objekt einer solchen Klasse erzeugt werden muss. Statische Kla...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang