Warum ich von Monomorphie Brechreiz bekomme!

Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on TumblrEmail this to someone

Ich bin leidenschaftlicher PHP Programmierer. Dabei möchte ich jedoch besonders das Wort LEIDEN hervorheben. Denn PHP verursacht bei mir, neben den Glücksmomenten wenn etwas funktioniert, ansonsten Brechreiz und spontanen Haarausfall.

Putzfrau aus Osteuropa

Putzfrau – BILD: © [Rainer Aschenbrenner] / PIXELIO.DE

Meine Entrüstung darüber, dass PHP – die sonst so ‘schöne’ Skript-Programmiersprache – nicht poolymorphiefähig ist, musste ich natürlich spontan in diversen sozialen Medien verbreiten. Sogleich schrieb ich Kommentare wie “Ich bekomme graue Haare, PHP ist schuld” – hier musste ich mich sehr kurz fassen, denn es waren nur 140 Zeichen erlaubt. Und in einem anderem Netzwerk postete ich einen kotzenden Hund mit der Überschrift ‘Monomorphie sucks‘.

Zum eigentlichen Thema zurück, denn jetzt haben wir es 06.30 Uhr morgens und auf meinem Smartphone kann ich dutzende Reaktionen, auf meine spontane Entladung, lesen. Anscheinend habe ich meine Freunde und Follower verwirrt. Jeder Kommentar enthält mindestens drei Fragezeichen. Jetzt fühle ich mich in der Pflicht aufzuklären … gern geschehen!

Wie erklärt man Polymorphie und Monomorphie? An dieser Stelle möchte ich – falls es oben noch nicht hervorgegangen ist – erwähnen, dass es sich um eine Programmiertechnik handelt. Ich rede nicht von Polygamie, Polyethylen oder Polyester – auch wenn ich ebenfalls gerne über diese spannenden Themen aufklären würde.

Polymorphie und Putzfrauen

Um den Begriffen Monomorphie und Polymorphie näherzukommen, greife ich mal ganz tief in die Stereotypenkiste. Nehmen wir eine Frau, genauer eine Putzfrau. Jetzt stellen wir uns vor diese Putzfrau kann nicht besonders gut Deutsch und reagiert nur auf verschiedenste Anweisungen. Sowas wie ‘Putzen‘, ‘Staubsaugen‘ und ‘Barzahlung‘.

Greifen wir die Tätigkeit Putzen heraus. Putzen kann so vieles sein, dies ist ein sehr umfassendes Thema und die Worte ‘könnten sie präziser‘ gehört ebenfalls zum deutschen Repertoir der netten Osteuropäerin. Also Präziser!

Polymorphie

Wenn ich nun der Tätigkeit ‘Putzen‘ ein Fensterputzmittel mit übergebe, sollte die Putzfrau merken, dass die Fenster an der Reihe sind. Gebe ich ihr jedoch ein Wassereimer mit einem Schrubber mit, sollte sie registrieren, dass die Böden geputzt werden sollen. Somit habe ich die Polymorphie schon erklärt.

Rufe ich ein und dieselbe namentliche Methode (Technik) ab, übergebe aber zwei vom Typ her verschiedene Parameter (Gegenstände), sollte die Programmiersprache (Putzfrau) merken, dass zwei verschiedene Algorithmen (Tätigkeiten) ausgeführt werden sollen.

Monomorphie

Sage ich unserer bezaubernden Putzfrau ‘Putzen‘ und stelle ihr einen Eimer Wasser hin und sie fängt sogleich an, Böden und Fenster mit dem Schrubber zu wischen werde ich die Antwort bekommen ‘geht nix, geht nix‘. Oder Sie fängt an mit dem Fensterputzmittel und einem Minilappen die Fenster und anschließend die Böden zu polieren, dann werde ich wohl ähnliches von ihr hören.

Dann weiß ich aber auch, dass die Putzfrau (Programmiersprache) nicht polymorphiefähig ist. Monomorphie heißt, dass einer Tätigkeit (Methode) nur ganz genau ein Arbeitsgang (Algorithmus) zugeordnet werden kann. Hier behelfe ich mir dann mit etwas längeren Tätigkeitsbeschreibungen (Methodennamen) welche eindeutig sind. ‘Putze_Fenster()‘ und ‘Putze_Böden()‘ wären hier die Lösung. Und ganz wichtig, auch wenn die Putzfrau aus Osteuropa kommt, das ‘Bitte‘ nicht vergessen!

Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on TumblrEmail this to someone

MrKnowing

Programmierer und Wissensnerd! Kontaktiere mich auf Google+ oder einfach per Mail danny@mrknowing.com

You may also like...

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>