
Deb un cadre de bus d'événements pour Delphi
Delphi Event Bus (pour Short Deb) est un cadre de bus de publication / abonnement pour la plate-forme Delphi.
Deb est conçu pour découpler différentes parties / couches de votre application tout en leur permettant de communiquer efficacement. Il a été inspiré par EventBus Framework pour la plate-forme Android.

Donner une étoile
S'il vous plaît "Star" ce projet dans GitHub! Cela ne coûte rien mais aide à référencer le code

Caractéristiques
- Facile et propre: Delphiecentbus est super facile à apprendre et à utiliser car il respecte les principes de conception du baiser et de la convention sur la configuration ". En utilisant l'instance de Teventbus par défaut, vous pouvez commencer immédiatement à livrer et recevoir des événements
- Conçu pour découpler différentes parties / couches de votre application
- Événement conduit
- API basés sur les attributs: Mettez simplement l'attribut d'abonnement sur votre méthode d'abonné Vous pouvez recevoir un événement spécifique
- Prise en charge du mode de livraison différent: Spécification du TTHRREADMODE Dans l'attribut abonné, vous pouvez choisir de livrer l'événement dans le thread principal ou en arrière-plan, quel que soit le cas où un événement a été publié. Le EventBus gérera la synchronisation des threads
- Testé unitaire
- Fitre en toute sécurité
Montre-moi le code
Événements
1. Définir les événements:
IEvent = interface (IInterface)
[ ' {3522E1C5-547F-4AB6-A799-5B3D3574D2FA} ' ]
// additional information here
end ; 2.Preparez les abonnés:
- Déclarez votre méthode d'abonnement:
[Subscribe]
procedure OnEvent (AEvent: IAnyTypeOfEvent);
begin
// manage the event
end ;
- Enregistrez votre abonné:
GlobalEventBus.RegisterSubscriberForEvents(Self);
3. Événements de postes:
GlobalEventBus.post(LEvent);
Canaux
1. DÉFINIER LA COMMANDE:
const MY_CHANNEL = ' MYCHANNEL '
2.Preparez les abonnés:
- Déclarez votre méthode d'abonnement:
[Channel(MY_CHANNEL)]
procedure OnMessage (AMsg: string);
begin
// manage the message
end ;
- Enregistrez votre abonné:
GlobalEventBus.RegisterSubscriberForChannels(Self);
3. Événement Post sur la chaîne:
GlobalEventBus.post(MY_CHANNEL, ' My Message ' );
Soutien
- Deb est un framework 100% ObjectPascal, il fonctionne donc sur VCL et FiremonKey
- Il fonctionne avec Delphi2010 et Major
- Cela fonctionne avec la dernière version Alexandrie
Notes de libération
DEB 2.1
- NOUVEAU! Pool de thread dédié introduit pour le filetage DEB
DEB 2.0
- NOUVEAU! Ajout d'un nouveau mécanisme basé sur l'interface pour déclarer et gérer les événements!
- NOUVEAU! Des canaux ajoutés pour des événements basés sur des chaînes simples
- NOUVEAU! Supprimé CloneEvent interne car maintenant les événements sont basés sur l'interface!
Changements de rupture
- Une méthode d'abonné ne peut avoir qu'un seul paramètre qui est une Iinterface ou des descendants
- La méthode EventBus.Post ne peut accepter qu'une interface comme paramètre maintenant
Licence
Copyright 2016-2022 Daniele Spinetti
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.