Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

GObject

Un article de Wikipédia, l'encyclopédie libre.

Cet article est uneébauche concernant unlogiciel libre.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations desprojets correspondants.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Les informations figurant dans cet article ou cette section doivent être reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes »().

GObject

Description de cette image, également commentée ci-après
Exemple de code en GObject :héritage de laméthodefile-size par une classe objet.
Informations
Développé parTeam GTK+
Dernière version2.30.2
Version avancée2.31.18
Dépôtgitlab.gnome.org/GNOME/glib.gitVoir et modifier les données sur Wikidata
Écrit enC
EnvironnementUnix,Windows,OS/2,BeOS
Languesen
Typebibliothèque de composants
Politique de distributionopen source
LicenceLGPL
Site webgtk.org

modifier -modifier le code -voir Wikidata(aide)

GObject est uneinterface de programmation et unebibliothèque logiciellemultiplate-forme publiée souslicence libre (LGPL), qui offre la possibilité de manipuler desobjets enlangage de programmationC, ainsi qu'une palette d'objets élémentaires. Elle peut être utilisée dans d'autres langages de programmation.

Propos de cette bibliothèque

[modifier |modifier le code]

La plupart des langages de programmation modernes (langages de haut niveau) proposent leur propre système d'objets, ainsi que des fonctionnalités de base pour lagestion des données, de lamémoire et des algorithmes remplaçant lecode de bas niveau. Alors que le reste de laGLib a pour but d'apporter auC ces fonctionnalités haut-niveau,GObject y introduit quant à lui laprogrammation orientée objet (POO).

GObject fournit entre autres les fonctionnalités suivantes :

  • Uneimplémentation portable des types fondamentaux.
  • Une classe de base, GObject, de laquelle hérite toute la hiérarchie des objets.
  • Un système de signal qui permet une utilisation très flexible par l'utilisateur des méthodes virtuelles, pouvant servir comme systèmes de notification entre objets.
  • Un système extensible de propriétés, qui peut être utilisé pour paramétrer en temps réel un objet, offrant ainsi une très bonneencapsulation.

Description

[modifier |modifier le code]

L’architecture de GObject fait écho à celle d’Objective-C, qui permet le développement d'applicatifs sousMac OS X (cf.Cocoa). GObject,classe de base de toutes les classes-objet de GTK+ 3.0/Gnome 3, est aujourd'hui au cœur de toutes les applications construites à partir de ces deux bibliothèques graphiques. La bibliothèque GObject, qui dépend uniquement delibc (voirbibliothèque standard du C etglibc) et deGLib, offre des fonctionnalités aussi diverses que laprogrammation par événements, desadaptateurs de type, unsystème de gestion d'exceptions et unalgorithme de ramasse-miettes. Les types d'objet sont d'abord créés par leMoteur d'exécution. Cela confère aux classes objet unecapacité d'introspection, quoiqu'au détriment de la sécurité dutypage.

L'architecture particulière de GObject interdit la faculté d'héritage multiple, contrairement àC++ ; on peut pallier cette limitation au moyen d'un protocole de classes d'interface comme on en trouve enJava ou enC#. En GObject, toute classe est implémentée par un minimum de deux types de données abstraits (des structures au sens du langage C) : l'une contient les informations relatives à la classe, par exemple lesméthodes ou la table virtuelle des appels et les variables statiques associées ; la seconde contient les instanciations, par exemple lesvariables d’instance. Contrairement aux langages C++, C# ou Java, il n'y a pas de spécificateurs de portée commepublic, protected, private ; mais on peut toujours implémenter les objets de classes réservées (private) grâce au type « structure » du langage C. Ces structures réservées n'ont pas à être déclarées dans les fichiers d'en-tête de la classe. Pour remplacer une classe de GObject, il faut souvent ré-écrire à la main plusieursmacros et fonction d'initialisation. Un outil a été mis au point pour faciliter l'écriture de classes,GOB2 (GObject Builder), dont la syntaxe emprunte beaucoup à Java. GOB2 se présente comme unpréprocesseur du compilateur C, et génère donc du code C. Une alternative à GOB2 est le langage de programmation Vala génère également du code C.

Les principales limitations duframework GObject sont l'absence d’espace de noms, l'impossibilité desurcharger les opérateurs et méthodes ainsi que la gestion encore « artisanale » des exceptions.

Bref historique

[modifier |modifier le code]

Dans les premières versions de labibliothèque graphique GTK, la couche de programmation objet était inextricablement liée à la couche utilisateur. La version GTK+2.0 de GTK/Gnome a marqué un saut considérable de clarification en scindant leframework objet proprement dit de la couche graphique : ainsi la couche objet précédemment élaborée est devenue utilisable aussi bien pour les applications lancées directement enligne de commande que pour les applications client-serveur ne nécessitant pas d’interface graphique.

Exemples d'utilisation

[modifier |modifier le code]

L'usage combiné du langage C et de la bibliothèque GObject a fait le succès de plusieurs applicationsopen source, à commencer évidemment parGTK+ : il y a là tous les logiciels développés pour l'environnementGnome :GIMP,Pango,GNOME Fichiers et bien d'autres.

Sources

[modifier |modifier le code]
v ·m
Personnes
Applications
Officielles
Développement
Communautaires
Interface utilisateur
Technologies
Communauté
v ·m
Histoire
Licences
Logiciels
Personnalités
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=GObject&oldid=219131865 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp