<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Stub_%28Programmierung%29</id>
	<title>Stub (Programmierung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Stub_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Stub_(Programmierung)&amp;action=history"/>
	<updated>2026-06-01T01:15:47Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Stub_(Programmierung)&amp;diff=423320&amp;oldid=prev</id>
		<title>imported&gt;Moritz1988: Toten internen Link auf mutmaßlich passende Zielseite korrigiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Stub_(Programmierung)&amp;diff=423320&amp;oldid=prev"/>
		<updated>2022-04-11T18:43:20Z</updated>

		<summary type="html">&lt;p&gt;Toten internen Link auf mutmaßlich passende Zielseite korrigiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Stub&amp;#039;&amp;#039;&amp;#039; (von [[Englische Sprache|englisch]] &amp;#039;&amp;#039;stub&amp;#039;&amp;#039;‚ Stubben, Stummel, Stumpf) oder &amp;#039;&amp;#039;&amp;#039;Stutzen&amp;#039;&amp;#039;&amp;#039; bezeichnet in der [[Softwareentwicklung]] einen – üblicherweise relativ einfachen und kurzen – [[Programmcode]], der anstelle eines anderen, meist komplexeren, Programmcodes steht. Dabei ist der eigentliche Programmcode, der durch den Stub ersetzt wird, noch nicht entwickelt ([[Top-Down- und Bottom-Up-Design|Top-Down]]-Ansatz) oder auf einem anderen Rechner oder in einem anderen [[Virtueller Adressraum|Speicherbereich]]. Liegt der Code an einem anderen Ort, so ist der Stub der lokale Anknüpfungspunkt, um Softwarekomponenten einfach anzusprechen, die ansonsten nur über komplexe [[Netzwerkprotokoll|Protokolle]] erreichbar wären bzw. sind und um diese Komplexität zu verbergen. Ein Stub entspricht dann dem [[Entwurfsmuster]] [[Stellvertreter (Entwurfsmuster)|eines Stellvertreters]].&lt;br /&gt;
&lt;br /&gt;
Insbesondere kommen Stubs bei der Entwicklung [[Verteilte Systeme|verteilter Systeme]] zur Anwendung: Die Funktionalität eines entfernten, nur über ein [[Rechnernetz|Netzwerk]] erreichbaren Softwaresystems wird auf dem lokalen System in Form einer „Stubkomponente“ zur Verfügung gestellt. Diese Stubkomponente kann von der Software des lokalen Systems so angesprochen werden, als wäre die Funktionalität des entfernten Systems lokal vorhanden ([[Zugriffstransparenz]]). Statt aber diese gewünschte Funktion tatsächlich zu implementieren, übersetzt die Stubkomponente die Anfragen in Netzwerkaufrufe ([[Marshalling]]), kommuniziert mit dem fernen System und delegiert die Aktion an dieses. Für das nutzende System bleibt dieser Kommunikationsvorgang verborgen.&lt;br /&gt;
&lt;br /&gt;
Bei einer Kommunikation nach dem [[Client-Server-System|Client-Server-Modell]] ([[Remote Procedure Call|RPC]], [[Remote Method Invocation|RMI]]) heißt der lokale Vertreterstub auf dem Client auch &amp;#039;&amp;#039;proxy&amp;#039;&amp;#039;. Bei verschiedenen Techniken kann aus einer abstrakten Beschreibung ein Grundgerüst ([[Skeleton (Programmierung)|Skeleton]]) für das Gegenstück auf dem Server erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Mono- und polymorphische Stubs ==&lt;br /&gt;
Ein Programm, welches die Methode eines [[Schnittstelle (Objektorientierung)|Interfaces]] aufruft, muss beim ersten Zugriff den dahinterliegenden Datentyp ermitteln.&lt;br /&gt;
&lt;br /&gt;
Steht der Datentyp fest, so wird ein &amp;#039;&amp;#039;&amp;#039;monomorphischer Stub&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;highPerf&amp;quot; /&amp;gt; erzeugt, der eine Funktion für den Zugriff auf die passende Methode für den jeweiligen Datentyp implementiert. Der Stub kann gespeichert werden, um einen erneuten Aufruf der Schnittstelle für ein weiteres Objekt zu optimieren. Ist das weitere Objekt jedoch typverschieden, so muss ein neuer monomorphischer Stub erzeugt werden. Ein monomorphischer Stub hat somit den Nachteil, dass er nur für einen bestimmten, konkreten Datentyp geeignet ist.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz dazu besitzt ein &amp;#039;&amp;#039;&amp;#039;polymorphischer Stub&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;highPerf&amp;quot; /&amp;gt; eine [[Hashtabelle]], welche auf eine Liste von Stubfunktionen zeigt. Der polymorphische Stub kann dann – vom jeweiligen Datentyp abhängig – die passende Funktion aufrufen. Beim Aufruf eines neuen Datentyps wird eine für diesen optimierte Funktion erzeugt und dem polymorphischen Stub hinzugefügt. Der polymorphische Stub ist allerdings aufgrund des Lookups langsamer.&lt;br /&gt;
&lt;br /&gt;
Einige Implementierungen wie die [[Common Language Runtime]] unterstützen sowohl mono- als auch polymorphische Stubs.&amp;lt;ref name=&amp;quot;highPerf&amp;quot; /&amp;gt; Welcher Stubtyp verwendet wird, entscheidet dabei eine [[Heuristik]].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Mock-Objekt]]&lt;br /&gt;
* [[Modultest]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;highPerf&amp;quot;&amp;gt;{{Literatur|Autor=Ben Watson|Titel=Writing High-Performance .NET Code|ISBN=978-0-9905834-3-1|Sprache=en|Datum=2014}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierung]]&lt;br /&gt;
[[Kategorie:Testen (Software)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Moritz1988</name></author>
	</entry>
</feed>