
Deb einen Event -Bus -Framework für Delphi
Delphi Event Bus (für ein kurzes Deb) ist ein Veröffentlichung/Abonnement -Event -Bus -Framework für die Delphi -Plattform.
Deb wurde entwickelt, um verschiedene Teile/Schichten Ihrer Anwendung zu entkoppeln und gleichzeitig effizient zu kommunizieren. Es wurde von EventBus Framework für die Android -Plattform inspiriert.

Gib ihm einen Stern
Bitte "Star" dieses Projekt in GitHub! Es kostet nichts anderes, als auf den Code zu verweisen

Merkmale
- Einfach und sauber: Delphieventbus ist super einfach zu erlernen und zu verwenden, da es Kuss- und Konventionsprüfungsprinzipien respektiert. Durch die Verwendung der Standard -TEVentbus -Instanz können Sie sofort mit der Lieferung beginnen und Ereignisse empfangen
- Entwickelt, um verschiedene Teile/Schichten Ihrer Anwendung zu entkoppeln
- Event getrieben
- Attributbasierte API: Stellen Sie einfach das Abonnement -Attribut auf Ihre Abonnentenmethode ein, die Sie ein bestimmtes Ereignis erhalten können
- Unterstützen Sie den unterschiedlichen Liefermodus: Wenn Sie den TThreadMode im Abonnement -Attribut angeben, können Sie die Lieferung des Ereignisses im Haupt -Thread oder in einem Hintergrund entscheiden, unabhängig davon, wo ein Ereignis veröffentlicht wurde. Der Eventbus verwaltet die Threadsynchronisation
- Einheit getestet
- Faden sicher
Zeigen Sie mir den Code
Ereignisse
1. Definieren Sie Ereignisse:
IEvent = interface (IInterface)
[ ' {3522E1C5-547F-4AB6-A799-5B3D3574D2FA} ' ]
// additional information here
end ; 2. Vorbereitende Abonnenten:
- Deklarieren Sie Ihre Abonnementmethode:
[Subscribe]
procedure OnEvent (AEvent: IAnyTypeOfEvent);
begin
// manage the event
end ;
- Registrieren Sie Ihren Abonnenten:
GlobalEventBus.RegisterSubscriberForEvents(Self);
3. Post -Ereignisse:
GlobalEventBus.post(LEvent);
Kanäle
1. Define Kanal:
const MY_CHANNEL = ' MYCHANNEL '
2. Vorbereitende Abonnenten:
- Deklarieren Sie Ihre Abonnementmethode:
[Channel(MY_CHANNEL)]
procedure OnMessage (AMsg: string);
begin
// manage the message
end ;
- Registrieren Sie Ihren Abonnenten:
GlobalEventBus.RegisterSubscriberForChannels(Self);
3.Post -Ereignis auf Kanal:
GlobalEventBus.post(MY_CHANNEL, ' My Message ' );
Unterstützung
- Deb ist ein 100% iger Objektpascal -Framework, damit es auf VCL und Fironemonkey funktioniert
- Es funktioniert mit Delphi2010 und Major
- Es funktioniert mit der neuesten Version Alexandria
Versionshinweise
Deb 2.1
- NEU! Eingeführter dedizierter Threadpool für Deb -Threading
Deb 2.0
- NEU! Neuen Schnittstellenmechanismus hinzugefügt, um Ereignisse zu deklarieren und umzugehen!
- NEU! Kanäle für einfache String-basierte Ereignisse hinzugefügt
- NEU! Interner KloneEvent entfernt, da jetzt Ereignisse auf dem internenbasiert sind!
Veränderungen brechen
- Eine Abonnentenmethode kann nur 1 Parameter haben, bei dem es sich um eine IInterface oder Nachkommen handelt
- EventBus.Post -Methode kann jetzt nur eine Schnittstelle als Parameter akzeptieren
Lizenz
Copyright 2016-2022 Daniele Spinetti
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz bei erhalten
http://www.apache.org/licenses/license-2.0
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As is" -Basis ohne Gewährleistung oder Bedingungen jeglicher Art ausdrücklich oder impliziert verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.