Liste und ArrayList (Beispiel) Die Klasse ArrayList aus der Java-Standard-API ist leistungsstark und praktisch, wenn es um die Verwaltung von Listen mit dynamischer Länge und wechselnden Inhalten geht. Diese Seite stellt alle Beispielprogramme des Buches „Java als erste Programmiersprache“ vor. Programmbeispiele aus dem Grundkurs Programmierung in Java. Die objektorientierte Programmierung am Beispiel von Java. Wofür steht die Java-Mehrfachvererbung?
volumes
Java hat die Entwicklung in sehr kurzer Zeit grundlegend verändert. Mit Java und Java wird die führende Programmiersprache, die auf der Basis von Cier-Sprachen auf eine neue und überraschende Art und Weise fortgeführt. Damit kann ein Java-Programm auf jedem Computer der Welt ohne Änderungen ausgeführt werden, wenn eine Virtual Machine für den jeweiligen Computer zur Verfügung steht.
Java stellt für die Internetprogrammierung die Technologie von Applikationen zur Verfügung, d.h. kleine Programme, die in einer Webseite ablaufen. Mit diesem Verfahren können Sie Webseiten mit Anwendungen von jedem beliebigen Computer im Netz auf Ihren eigenen Computer herunterladen und diese Anwendungen in Ihrem eigenen Webbrowser abspielen. Aber nicht nur in Netzwerken wird Java eingesetzt, sondern auch als universelle und vielseitig verwendbare Programmsprache.
Sie hat zum Zweck, die sprachlichen Konzepte von Java und die Grundbegriffe der objektorientierten Entwicklung dem Neueinsteiger möglichst genau und doch leicht verständlich darzustellen. Besondere „Warnsymbole“ machen den versierten C++-Programmierer auf die besonderen Eigenschaften von Java im Vergleich zu C++ aufmerksam.
Java: Besuchermuster mit Generika
Sein Schwerpunkt liegt auf der Implementierung von skalierbaren, hochverfügbaren Internetdiensten mit den Sprachen C++ und Java. Meiner Meinung nach ist das Besuchermuster immer noch eines der bedeutendsten Designmuster in Java. Vor allem Generika wirkten sich aus. Deshalb schildere ich in diesem Beitrag, wie ich im Moment wenigstens das Besuchermuster in Java nutze.
Ich werde auch kurz auf die Besonderheiten von Java-Generika und die Besonderheiten zu anderen Sprachen eingehen. Die Besucherstruktur wird in der Regel zusammen mit einer Klassen-Hierarchie verwendet. Die Rechtekonzeption einer Applikation erlaubt die Vergabe von Rechten sowohl an einzelne Personen als auch an Firmen. Eine Gruppe besteht aus einzelnen Personen oder aus rekursiven Teilgruppen.
Unter dem Gesichtspunkt der Vergabe von Rechten ist es daher sinnvoll, von Individuen und Gruppierungen zu abstrahieren. 2. Dazu fügte ich dem Interface die enthaltene Methodik zu, die in den einzelnen konkreten Kategorien anders umgesetzt ist. Dies ist verhältnismäßig simpel und nicht verwunderlich. In einer Applikation kann ich mir in Verbindung mit meinem Beispiel eine Vielzahl weiterer Einsatzfälle denken, in denen die konkrete Ausprägung differenziert werden muss.
Voraussetzung kann z.B. sein, dass die Rechte in einer graphischen Benutzeroberfläche dargestellt werden und dass Personen und Gruppierungen durch verschiedene Ikonen identifiziert werden. Alternativ müssen die Zulassungen in einer Datenbasis abgelegt werden, bei der auch zwischen den einzelnen Merkmalen zu unterscheiden ist. Für all diese Differenzen könnte man nun die Common Interface Akteur durch geeignete Verfahren ausweiten.
Am leichtesten wäre es, wenn es ein externes Äquivalent zu herkömmlichen Verfahren gibt. Wie viele andere statische Sprachen auch, hat Java diese Option nicht in sich. Gerade hier kommt das Besuchermuster zum Tragen. Mit einer einmaligen Ausweitung der Klassen-Hierarchie können weitere Funktionen von außerhalb ergänzt werden – ähnlich wie bei der Verwendung virtueller Verfahren.
Die einzusetzenden Verfahren sind auf die konkrete Ausprägung des Antriebs abgestimmt. Dieses Beispiel ist irrealistisch simpel. Meistens sollte der Besucher nicht nur Nebenwirkungen erzeugen, sondern auch etwas zurückschicken – etwa ein sogenanntes widget für die graphische Benutzeroberfläche oder ein Dauereinsatz. Bemerkenswert ist, dass dies mit den Generika aus Java vergleichsweise leicht zu realisieren ist.
Der Hauptunterschied zum herkömmlichen Muster besteht darin, dass der ungültige Returntyp (oder ein anderer spezifischer Typ) durch einen Parameter vom Typ Cd ersetzt wird. Dadurch ist es leicht, die Ausgangsfunktionalität aus dem vorigen Beispiel neu zu schreiben. Zwei wichtige Merkmale sind zum einen, dass der Besucher keine (unnötigen) Nebenwirkungen erzeugt, und zum anderen, dass der Kode nicht getippt wird und keine Type Casting benötigt.
Dementsprechend kann der Besucher für den Einsatzfall der graphischen Benutzeroberfläche mit dem neuen ActorVisitor und für die Ausdauer mit dem neuen ActorVisitor implementiert werden. Dies kann aber auch daran gelegen haben, dass ich viel längere Zeit mit Vorlagen in C++ als mit Generika in Java arbeite. Die Typ-Parameter werden in Java im Unterschied zu anderen Konvertierungen fast ausschließlich zur Prüfung statischer Typen genutzt und bei der Code-Generierung weitgehend durch eine eindeutige Typ-Konvertierung abgelöst.
Doch gerade dieser Ansatz erlaubt es, die virtuellen Verfahren mit Generika zu kombinieren. Dies bedeutet, dass zur Ausführungszeit nur eine Instanze der Methodik vorhanden ist, die für alle Typ-Parameter gleichwertig ist. Die Problematik liegt auf der Hand: Ich habe nie eine direkte oder indirekte Stimmenthaltung von Fraktionen verhindert.
Es gibt zweifellos eine weitere Option, die darin besteht, die enthaltene Gruppe um einen weiteren Wert zu ergänzen, der die bereits berücksichtigten Gruppierungen aufnimmt. Es ist bemerkenswert, dass die richtige Umsetzung leichter und übersichtlicher ist, wenn man mit einem Besucher zurechtkommt. Es reicht in diesem Falle aus, die Anzahl der Besuchergruppen im Besucher selbst zu sichern.
Es geht um die Behandlung von Ausnahmen, die auch nach 17 Jahren in Java immer noch nicht die Beachtung finden, die ich mir wünsche. Das Schlimme ist, dass die geprüften Ausnahmen wieder zu Problemen führen. Schließlich ist dies nur ein weiteres Beispiel dafür, dass der Weg der geprüften Ausnahmen in Java zu kurz ist.
In diesem Zusammenhang kann ich nur raten, der allgemeinen Entwicklung zu folgen und so weit wie möglich auf geprüfte Ausnahmen in Java zu verzichten. 2. Meiner Ansicht nach ist das Besuchermuster eines der bedeutendsten Designmuster, jedenfalls wenn die eingesetzte Sprache keine geeignetere Möglichkeit für den Versand nach außen gibt. Bei Java passt dieses Schema meiner Ansicht nach besonders gut, was zum einen an den anonyme, innere Schichten und zum anderen an der Interaktion mit den Generika lag.
Unglücklicherweise ist der Aufwand für die Syntax verhältnismäßig hoch. Verglichen mit anderen Sprachen läuft Java – mit Ausnahme der lästigen Ausnahmen – immer noch sehr gut.
Leave a Reply