Ben comme X11, comme Qt, comme la libc, comme dbus, comme libxml2
X11 est encapsulé par Qt (tiens, il a plusieurs backends, lui !)
Qt garde sa compatibilité binaire sur les versions majeures.
dbus est encapsulé par Qt 4.
Je continue ?
Que fait KDE : ils encapsulent plusieurs backends.
Non.
KDE décide que l'encapsulation est nécessaire (le motif est bon, selon toi). Et ils se rendent compte que, tant qu'à faire, autant prévoir une API style KDE et générique. Et cette généricité permet à ceux qui le veulent de créer et d'utiliser un autre backend s'ils n'aiment pas/ne peuvent pas utiliser celui qui a été choisi. Et évidemment, c'est ce qui arrive, mais ce n'était pas le but premier de Phonon, c'est juste un effet de bord.
Ben applique le même raisonnement pour les autres librairies que KDE utilise mais ne développe pas.
C'est exactement la même chose qui se passe. Si ça se retrouve dans Qt ou kdecore, c'est encapsulé. Et si une application décide de passer outre, et d'utiliser directement la bibliothèque, rien ne l'en empêche.
[^] # Re: Phonon
Posté par Amand Tihon (site web personnel) . En réponse au journal Vous voulez krasher ? (KDE4 inside). Évalué à 4.
X11 est encapsulé par Qt (tiens, il a plusieurs backends, lui !)
Qt garde sa compatibilité binaire sur les versions majeures.
dbus est encapsulé par Qt 4.
Je continue ?
Que fait KDE : ils encapsulent plusieurs backends.
Non.
KDE décide que l'encapsulation est nécessaire (le motif est bon, selon toi). Et ils se rendent compte que, tant qu'à faire, autant prévoir une API style KDE et générique. Et cette généricité permet à ceux qui le veulent de créer et d'utiliser un autre backend s'ils n'aiment pas/ne peuvent pas utiliser celui qui a été choisi. Et évidemment, c'est ce qui arrive, mais ce n'était pas le but premier de Phonon, c'est juste un effet de bord.
Ben applique le même raisonnement pour les autres librairies que KDE utilise mais ne développe pas.
C'est exactement la même chose qui se passe. Si ça se retrouve dans Qt ou kdecore, c'est encapsulé. Et si une application décide de passer outre, et d'utiliser directement la bibliothèque, rien ne l'en empêche.