Peter Bucher - Mein Experiment, meine Spielereien, meine Welt...   ·   Stefan Falz   ·   Jürgen Gutsch   ·   Golo Roden   ·   ASP.NET Zone   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Abstraktion

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen.

Bisher sind in dieser Reihe folgende Kommentare erschienen:

Heute, am 1. März 2010, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

Abstraktion

So wohl Golo wie auch ich haben uns unabhängig voneinander im Vorfeld unsere Gedanken gemacht, wie wir diesem Thema gegenüberstehen. Außerdem nimmt diesen Monat auch Roberto Bez an unserem Streitgespräch teil.

Golos und Robertos Kommentare finden sich zeitgleich in den entsprechenden Blogs, folgend nun mein Kommentar zu diesem Thema:

Der Begriff “Abstraktion” wird in vielen möglichen Bereichen genutzt, sei dies Kunst, Psychologie, Philosophie, Mathematik oder sogar in der Sprachwissenschaft.

Abstraktion hat in jedem Bereich die gleiche Bedeutung, jedoch in einem jeweils anderen Kontext.

 

Ein Beispiel aus der Psychologie:

In einem Leben wird der Mensch mit sehr viel Wissen, Tatsachen und Situationen auseinandergesetzt.
Wenn der Mensch alles im Kopf behält und das auch im Leben nutzt, wäre das Leben um einiges komplizierter.

Bspw. am Mittagstisch, entweder “Gib mir bitte die Butter” vs. “Gib mir bitte die Laco Butter mit 5% Fettanteil, die Gestern Aktion war.”

Bei zweiterem müsste der Gegenüber wohl zuerst mal überlegen, was überhaupt gefordert ist oder ob es evt. sogar ein Scherz ist.
Danach schauen ob all die Eigenschaften übereinstimmen und dann schlussendlich die Butter bringen oder eine Antwort geben.

Ihr könnt es schon denken: Das Leben wäre viel zu kompliziert.
Mit ersterem Satz weiss jedes Kind was gemeint ist und die Komplexität nimmt rapide ab.

Man kann schlussendlich immer noch sagen: “Bitte gib mir die light Butter” / “Bitte gib mir die normale Butter”, wenn eine solche Unterscheidung notwendig ist, wenn zwei Butter vorhanden sind.

Das Beispiel zu Kunst auf Wikipedia ist auch sehr interessant: http://de.wikipedia.org/wiki/Abstraktion#Kunst

Es geht also um die Generalisierung, um das weglassen von Details, wobei genau dasselbe erreicht werden kann.

 

In der Software-Entwicklung gibt es zum einen die Objektorientierte Programmierung und zum anderen Sprachkonstrukte für Generalisierung.
Auch wenn es wohl einige nicht daran denken, weil sie zufest in abstrakte Klassen und Interfaces eingefahren sind: Auch konkrete Klassen sind Abstraktionen.

Sie verbergen Details (Datenkapselung), die ja eigentlich dazugehören, aber den Client nicht interessiert, sowie einen Schutz darstellt, wenn das Klasse später noch geändert werden muss, ohne das der Clientcode bricht.

Auch bei konkreten Klassen gibt es die Generalisierung und Spezialisierung. “String” ist eine Spezialisierung vom Typ “object” und “Person” eine Generalisierung von “PoliceOfficer”.

Zusätzlich zu den Möglichkeiten der Objektorientierung gibt es in C# zwei Sprachkonstrukte, um die Nutzung von Abstraktion noch effektiver zu nutzen.

Abstrakte Klassen und Interfaces, mehr dazu könnt ihr in einem frühreren Streitgespräch lesen:

Veröffentlicht Montag, 1. März 2010 09:37 von Peter Bucher

Kommentare

# re: Abstraktion

Moin, moin Peter,

zunächst mal danke für die interessanten Anregungen und "Streitgespräche".

Eine Kleinigkeit bzgl der Daten: Kann das sein, dass die obersten Einträge auf 2010 (und nicht 2009) datieren sollten? (In der Übersicht über alle bisherigen Einträge)

cu

Christian

Montag, 21. Juni 2010 18:46 by Polarkreis

# re: Abstraktion

Salute Christian

Ja, ist jetzt ausgebessert, danke! :)

Dienstag, 22. Juni 2010 00:26 by Peter Bucher
Anonyme Kommentare sind nicht zugelassen