Doppel-Chance-Funktion

Im Software-Engineering, ist ein Doppel-Chance-Funktion ein Entwurfsmuster mit einem starken Einsatz in plattformübergreifende und skalierbare Entwicklung.

Betrachten Sie eine Grafik-API-Funktionen mit den ,, und. Es ist leicht zu sehen, dass nur in Bezug implementiert werden und kann wiederum durch vier Aufrufe implementiert werden. Wenn Sie wurden diese API, um eine neue Architektur zu portieren Sie die Wahl haben: drei verschiedene Funktionen implementieren nativ oder schreiben nativ, und Umsetzung der anderen, wie oben mit gängigen, plattformübergreifende, Code beschrieben. Ein wichtiges Beispiel für diesen Ansatz ist das X11-Grafiksystem, was zu neuen Grafik-Hardware, indem sie eine sehr kleine Anzahl von geräteabhängigen Grundelemente, so dass höhere Funktionen Pegel zu einem Hardware-unabhängige Schicht transportiert werden kann.

Die Doppel-Chance-Funktion ist eine optimale Methode zum Erstellen einer solchen Implementierung, wobei der erste Entwurf des Port kann der Einsatz "schnell auf den Markt, langsam zu laufen" -Version mit einer gemeinsamen Funktion, während spätere Versionen können als "nur langsam verändert werden Markt, schnell zu laufen ". Wobei die Doppel Chance Muster Partituren hoch ist, dass die Basis-API umfaßt die selbsttragende Ausführung hier als Teil der Null Fahrer gegeben, und alle anderen Implementierungen sind Erweiterungen von diesem. Folglich das erste Port ist in der Tat der erste nutzbare Umsetzung.

Eine typische Implementierung in C ++ können sein:

Beachten Sie, dass die Funktion nicht verwendet wird, per se, als irgendwelche Grafiken nennen geht durch eines ihrer abgeleiteten Klassen. So ein Aufruf würde seine erste Chance auf einen Platz, der von der Klasse machen müssen. Wenn keine native Implementierung vorhanden ist, wird die Basisklasse aufgerufen wird, an welchem ​​Punkt der Virtualisierung übernimmt und die Mittel, die aufgerufen wird. Dies gibt die Klasse eine "zweite Chance" zu nativem Code zu verwenden, wenn überhaupt vorhanden ist.

Mit diesem Verfahren ist es theoretisch möglich, eine gesamte 3D-Motor mit nur einer native Funktion in Form DrawPoint zu bauen, mit anderen Funktionen als und wenn es die Zeit erlaubt implementiert. In der Praxis wäre dies hoffnungslos langsam, aber es funktioniert zeigen die Möglichkeiten für Doppelchance-Funktionen.

(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha