Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Sortie d'InjeQt 1.1
Une bibliothèque d'injection de dépendances pour Qt, maintenant avec une fonctionnalité de chaîne d'injecteurs

Le , par dourouc05, Responsable Qt
L’injection de dépendances est un patron de conception qui a de plus en plus la cote. Un de ses objectifs est d’éviter l’utilisation de singletons dans une application (qui provoquent les mêmes troubles que des variables globales) en implémentant l’inversion de contrôle : au lieu que le « code spécifique » (comme une manière de lire des données : du réseau, d’un fichier, etc.) appelle le « code générique » (par exemple, un traitement sur des données), c’est l’inverse qui se produit. Ce « code générique » exploite donc des interfaces pour appeler le « code spécifique » qui lui est fourni en argument. Cette manière de concevoir des applications permet notamment de faciliter les tests : la partie injectée peut être implémentée au niveau du test, ce qui permet de tester exclusivement le « code générique ».

InjeQt est une implémentation de ce patron de conception pour Qt. Ce fait n’est pas si anodin : d’habitude, ces implémentations sont font dans des langages plus dynamiques que le C++, en exploitant des fonctionnalités de réflexion… qui n’existent pas en C++. Par contre, Qt les fournit par son système de métaobjets. InjeQt peut donc proposer des services (du « code spécifique »), pour peu qu’il dérive de QObject (directement ou non). Les dépendances entre classes sont alors explicitées par le biais de la macro INJEQT_SET.

La version 1.1, nouvellement sortie, permet l’injection directe dans un objet par la méthode inject_into(QObject*), ainsi que la définition d’une hiérarchie d’injecteurs (composée de parents et de sous-injecteurs provider_by_parent_injector). Cette dernière fonctionnalité permet notamment à une extension d’une application de récupérer une série de services déjà définis à l’échelle globale (un sous-injecteur) depuis l’injecteur défini dans cette extension (l’injecteur parent).

Télécharger le code source d’InjeQt 1.1.
Source : Injeqt 1.1 and testing Qt applications et le code source d’InjeQt.
Ce contenu a été publié dans Qt par dourouc05.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Responsable de projet logiciel H/F
Safran - Ile de France - Éragny (95610)
Responsable de lot vérification et qualification (IVVQ) H/F
Safran - Alsace - MASSY Hussenot
Ingénieur développement logiciels temps réel embarqué H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -