01-08-2013, 05:31 PM
Sauf qu'on peut considérer que c'est à la bibliothèque de communiquer le message de modification à chacun de ses livres.
Ce qui me gène dans l'idée du "je demande à la bibliothèque tous ses livres et je les modifie", c'est qu'en un sens, on en sait beaucoup trop sur la bibliothèque. Comment pourrait-on alors passer d'une bibliothèque papier à une bibliothèque numérique avec ce système? Ou à une autre forme de bibliothèque encore totalement inconnue de nos jours? Le principe de "faire sortir le livre" de la bibliothèque fait filtrer trop d'informations vers l'extérieur pour être facilement maintenable.
Un exemple peut être plus compréhensible: si ma bibliothèque contient des nombres en Java. Alors, cette bibliothèque va contenir, par exemple, des objets "Integer". Sauf que plus tard, j'ai besoin d'un super grande bibliothèque, et je dois donc passer à des entiers simples (pas des objets). Donc il faut que la méthode qui renvoie les "livres" (objet Integer) de ma bibliothèque soit adaptée, et finalement, l'utilisateur ne modifie plus le livre de la bibliothèque, puisqu'il modifie l'objet Integer que la bibliothèque a du générer pour rester compatible... Ce genre de "fuite" d'information d'une classe génère donc un fort couplage, et rend la maintenance hyper lourde (mais c'est une question de goût peut-être).
Le coté "boîte noire" n'est pas assez présent pour moi si on peut demander à cette boite noire (bibliothèque) de nous renvoyer sa liste de composants (livres).
Ce qui me gène dans l'idée du "je demande à la bibliothèque tous ses livres et je les modifie", c'est qu'en un sens, on en sait beaucoup trop sur la bibliothèque. Comment pourrait-on alors passer d'une bibliothèque papier à une bibliothèque numérique avec ce système? Ou à une autre forme de bibliothèque encore totalement inconnue de nos jours? Le principe de "faire sortir le livre" de la bibliothèque fait filtrer trop d'informations vers l'extérieur pour être facilement maintenable.
Un exemple peut être plus compréhensible: si ma bibliothèque contient des nombres en Java. Alors, cette bibliothèque va contenir, par exemple, des objets "Integer". Sauf que plus tard, j'ai besoin d'un super grande bibliothèque, et je dois donc passer à des entiers simples (pas des objets). Donc il faut que la méthode qui renvoie les "livres" (objet Integer) de ma bibliothèque soit adaptée, et finalement, l'utilisateur ne modifie plus le livre de la bibliothèque, puisqu'il modifie l'objet Integer que la bibliothèque a du générer pour rester compatible... Ce genre de "fuite" d'information d'une classe génère donc un fort couplage, et rend la maintenance hyper lourde (mais c'est une question de goût peut-être).
Le coté "boîte noire" n'est pas assez présent pour moi si on peut demander à cette boite noire (bibliothèque) de nous renvoyer sa liste de composants (livres).