Mix-In

Mix-In

Als Mixin wird in der objektorientierten Programmierung ein zusammengehöriges, mehrfach verwendbares Bündel von Funktionalität bezeichnet, das zu einer Klasse hinzugefügt werden kann. Von manchen Programmiersprachen werden Mixins direkt unterstützt, beispielsweise von Ruby. In anderen Sprachen wird dieses Entwurfsmuster abhängig von den Möglichkeiten der jeweiligen Programmiersprache beispielsweise mittels Mixin-Klassen in Verbindung mit Mehrfachvererbung oder mittels generischer Programmierung umgesetzt.

Ein Trait ist eine besondere Form eines Mixins. Ein Trait besitzt eine gemeinsame Basisklasse mit der Klasse, auf die das Trait angewendet wird.

Inhaltsverzeichnis

Beispiel

Modellierung eines Schachspiels (UML) und Mixin für Persistenz

Das folgende Beispiel stellt einen Anwendungsfall des Mixin-Entwurfsmusters dar. Es enthält eine Klassenhierarchie, die ein Schachspiel modelliert. In diesem Modell ist für die Klassen Zugfolge und Spielstellung angebracht, diese persistent machen zu können. Das bedeutet, dass Objekte dieser Klassen in einem nicht-flüchtigem Speichermedium – beispielsweise einer Datenbank – gespeichert und aus diesem wieder rekonstruiert werden können. Für andere Klassen dieses Modells ist die Unterstützung einer Persistenz dagegen nicht sinnvoll.

Das Mixin Persistenz könnte die Methoden StoreInDatabase und RestoreFromDatabase enthalten und mittels diesen ein Objekt der Klassen, bei denen dieses Mixin eingebunden wird, in der Datenbank speichern beziehungsweise aus dieser rekonstruieren. Im Unterschied zu Schnittstellen (Interface), wie sie beispielsweise in Java und C# üblich sind, enthält ein Mixin aber typischerweise bereits Funktionalität, die verwendet werden kann.

Mixins und Vererbung

Während in Sprachen wie C++ und Eiffel Mixins als Klassen unter Verwendung von Mehrfachvererbung abgebildet werden, gibt es auch die Sichtweise, eine Mixin-basierte Vererbung als Verallgemeinerung des in klassischen objektorientierten Sprachen wie Smalltalk oder Simula implementierten Vererbungmechanismus zu sehen. Wenn man Vererbung als inkrementellen Mechanismus betrachtet, der eine Basisklasse (B) modifiziert, ist das Ergebnis (E) eine Art Kombination der Basisklasse mit einer Modifikation (M). Dies lässt sich folgendermaßen formulieren:

E = B \, \triangle \, M = B + M(B)

Bei der Vererbung in konventioneller Form hat die Modifikation (M) keine unabhängige Existenz, sie ist Teil des Ergebnisses (E). Im Gegensatz dazu geht man bei der Mixin-basierenden Vererbung vom Standpunkt aus, dass die Modifikation eine Abstraktion ist, die unabhängig von der Basisklasse (B) und dem Ergebnis ist. Diese Modifikation ist das Mixin, das Symbol \trianglesteht für die Mixin Application, also die Anwendnung des Mixins.

Literatur

  • Iain D. Craig: Object-Oriented Programming Languages: Interpretation. Springer Verlag, London 2007, ISBN 1-84628-773-1

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • -mix — mix·is; …   English syllables

  • Mix FM — is a radio name and format. It is given to certain radio stations around the world with that name, while having the mix format. Although some stations don t have the name Mix FM , they can still have the format of Mixed Hits a variety of… …   Wikipedia

  • mix — [mɪks] noun [countable usually singular] a group of different things combined together for a particular purpose: • If the investment manager picks the right mix of bonds, his total return should rise quickly. ˈasset ˌmix FINANCE a mix of… …   Financial and business terms

  • Mix — Mix, mixes, mixture or mixing may refer to: Contents 1 Science and mathematics 2 Music and radio 3 People …   Wikipedia

  • MIX (XM) — MIX Broadcast area Off Air branding = Today s Mix Slogan The Best Variety of the 80s, 90s, and Now! Frequency XM 12 First air date …   Wikipedia

  • MIX — ist ein fiktiver, idealer Computer, welchen Donald E. Knuth in seinem Buch The Art of Computer Programming zur Illustration von Algorithmen nutzt. Der MIX Modellcomputer wird später durch den MMIX, eine moderne und erweiterte Version, ersetzt.… …   Deutsch Wikipedia

  • MIX — is a hypothetical computer used in Donald Knuth rsquo;s monograph, The Art of Computer Programming ( TAOCP ). MIX rsquo;s model number is 1009, which was derived by combining the model numbers and names of several contemporaneous, commercial… …   Wikipedia

  • mix — mix·ite; mix·ol·o·gist; mix·ol·o·gy; mix·tec; mix·te·can; mix·ture; neph·ro·mix·i·um; pan·mix·ia; poly·mix·ia; pseu·do·mix·is; un·mix; ver·mix; ad·mix; mix·tie max·tie; pre·mix; re·mix; cac·o·mix·le; mix·able·ness; mix·te·ca; mix·te·co; mix·ter… …   English syllables

  • MIX — MIX  это гипотетический компьютер, использованный в монографии Дональда Кнута, «Искусство программирования»[1]. Номер модели компьютера MIX  1009, происходит от комбинации номеров и названий коммерческих моделей машин, современных… …   Википедия

  • Mix 94.5 — FM Broadcast area Perth Frequency 1210 kHz AM (1941–1978) 1206 kHz AM (1978–1991) 94.5 MHz FM (1991–) First air date …   Wikipedia

  • mix — [miks] vt. [prob. back form. < mixt, mixed, taken as pp. < Fr mixte < L mixtus, pp. of miscere, to mix (> OE miscian) < IE base * meik > Gr meignynai, Welsh mysgu, to mix] 1. to put or blend together in a single mass, collection …   English World dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”