© Liashko/Shutterstock.com
Entwickler Magazin
Objektorientierte Programmierung in C - Teil 2

ANSI C goes OOP - jetzt erst recht

Im vorherigen Artikel haben wir uns mit der Geschichte und den Grundlagen von objektorientierter Programmierung beschäftigt. In diesem Artikel vertiefen wir das Thema. Ich demonstriere anhand eines komplexeren Beispiels (einer einfachen Job Queue) das Zusammenspiel mehrerer Klassen und gehe dabei auch auf das Thema der Wiederverwendung und Vererbung ein.

Wolfgang Schmidt


ArtikelserieTeil 1: Einführung und grundlegende TechnikenTeil 2: Vertiefung an einem umfassenderen Beispiel

Am Beispiel einer einfachen Stringklasse habe ich in der letzten Ausgabe einfache Techniken der OOP in C in verschiedenen Variationen demonstriert. Im Mittelpunkt standen dabei Konzepte wie die Trennung von Schnittstelle und Implementierung, Information Hiding (Verbergen privater Daten), sowie die Bereitstellung von Methoden für entsprechende Datenstrukturen. Damit sind alle Grundsteine gesetzt, um tiefer in die Materie einzutauchen.

Benötigte WerkzeugeZum Nachvollziehen der Beispiele wird lediglich ein C-Compiler sowie das Unix-Werkzeug make benötigt. Unter unixoiden Betriebssystemem sind diese Werkzeuge meist bereits vorhanden, unter Windows normalerweise nicht. Auf jeden Fall können sie ggf. leicht installiert werden:Debian-basierte Systeme wie Ubuntu, Linux mint : Hier kann aus einer Shell apt benutzt werden: sudo apt-get install build-essential.Für andere unixoide System (Mac OS X) kann die Software von http://gcc.gnu.org/ manuell installiert werden.Windows: Hier empfiehlt sich die Benutzung von mingw (http://www.mingw.org/), das ein minimales System für die Benutzung unter Windows bereitstellt.

Fallbeispiel: eine Job Queue

Als Beispiel für eine vertiefende Betrachtung der OOP in C soll uns eine einfache Job Queue dienen. Eine Job Queue kann benutzt werden, um den Vorgang der Erstellung von Aufgaben von deren Ausführung zu entkoppeln und so die asynchrone Verarbeitung zu ermöglichen. Näheres zu Job Queues findet sich unter [1].

Um das Beispiel einfach zu halten, gehen wir von folgendem Anwendungsfall aus: Es werden Jobs für Systemverwaltungsaufgaben generiert, die Dateien entweder löschen oder ein Backup einer Datei in einem übergebenen Pfad anlegen. Diese werden zunächst alle in die Job Queue eingestellt. Nachdem alle Jobs eingestellt wurden, wird die Jobverarbeitung der Job Queue gestartet, die die eingestellten Jobs nacheinander abarbeitet.

In einer realen Anwendung würden die Joberzeugung und die Jobverarbeitung in separaten Prozessen erfolgen. Dazu müssten Kommunikationsmöglichkeiten zwischen diesen Prozessen geschaffen werden, indem die Jobs in eine Datei oder eine Datenbank geschrieben würden. Das Erzeugerprogramm könnte die Jobs z. B. tagsüber in eine Jobdatei schreiben, die ein Job-Queue-Prozessor dann nachts ausliest und verarbeitet. Ein anderer Weg wäre das Ablegen in einer Datenbank. In unserem Beispiel werden wir darauf aber nicht eing...

Entwickler Magazin
Objektorientierte Programmierung in C - Teil 2

ANSI C goes OOP - jetzt erst recht

Im vorherigen Artikel haben wir uns mit der Geschichte und den Grundlagen von objektorientierter Programmierung beschäftigt. In diesem Artikel vertiefen wir das Thema. Ich demonstriere anhand eines komplexeren Beispiels (einer einfachen Job Queue) das Zusammenspiel mehrerer Klassen und gehe dabei auch auf das Thema der Wiederverwendung und Vererbung ein.

Wolfgang Schmidt


ArtikelserieTeil 1: Einführung und grundlegende TechnikenTeil 2: Vertiefung an einem umfassenderen Beispiel

Am Beispiel einer einfachen Stringklasse habe ich in der letzten Ausgabe einfache Techniken der OOP in C in verschiedenen Variationen demonstriert. Im Mittelpunkt standen dabei Konzepte wie die Trennung von Schnittstelle und Implementierung, Information Hiding (Verbergen privater Daten), sowie die Bereitstellung von Methoden für entsprechende Datenstrukturen. Damit sind alle Grundsteine gesetzt, um tiefer in die Materie einzutauchen.

Benötigte WerkzeugeZum Nachvollziehen der Beispiele wird lediglich ein C-Compiler sowie das Unix-Werkzeug make benötigt. Unter unixoiden Betriebssystemem sind diese Werkzeuge meist bereits vorhanden, unter Windows normalerweise nicht. Auf jeden Fall können sie ggf. leicht installiert werden:Debian-basierte Systeme wie Ubuntu, Linux mint : Hier kann aus einer Shell apt benutzt werden: sudo apt-get install build-essential.Für andere unixoide System (Mac OS X) kann die Software von http://gcc.gnu.org/ manuell installiert werden.Windows: Hier empfiehlt sich die Benutzung von mingw (http://www.mingw.org/), das ein minimales System für die Benutzung unter Windows bereitstellt.

Fallbeispiel: eine Job Queue

Als Beispiel für eine vertiefende Betrachtung der OOP in C soll uns eine einfache Job Queue dienen. Eine Job Queue kann benutzt werden, um den Vorgang der Erstellung von Aufgaben von deren Ausführung zu entkoppeln und so die asynchrone Verarbeitung zu ermöglichen. Näheres zu Job Queues findet sich unter [1].

Um das Beispiel einfach zu halten, gehen wir von folgendem Anwendungsfall aus: Es werden Jobs für Systemverwaltungsaufgaben generiert, die Dateien entweder löschen oder ein Backup einer Datei in einem übergebenen Pfad anlegen. Diese werden zunächst alle in die Job Queue eingestellt. Nachdem alle Jobs eingestellt wurden, wird die Jobverarbeitung der Job Queue gestartet, die die eingestellten Jobs nacheinander abarbeitet.

In einer realen Anwendung würden die Joberzeugung und die Jobverarbeitung in separaten Prozessen erfolgen. Dazu müssten Kommunikationsmöglichkeiten zwischen diesen Prozessen geschaffen werden, indem die Jobs in eine Datei oder eine Datenbank geschrieben würden. Das Erzeugerprogramm könnte die Jobs z. B. tagsüber in eine Jobdatei schreiben, die ein Job-Queue-Prozessor dann nachts ausliest und verarbeitet. Ein anderer Weg wäre das Ablegen in einer Datenbank. In unserem Beispiel werden wir darauf aber nicht eing...

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