Votre livre explique très bonne, donc permettez-moi d'élaborer et de fournir quelques exemples.
délégation: Quand mon objet en utilise un autre objet de la fonctionnalité est sans la modifier.
Parfois, une classe peut logiquement besoin d'être grand. Mais de grande classe n'est pas une bonne pratique de codage. Aussi, parfois, certaines fonctionnalités d'une classe peuvent être mises en œuvre dans plus d'une façon et que vous souhaitez modifier un certain temps.
class FeatureHolder {
void feature() {
// Big implementation of the feature that you dont want to put in the class Big
}
}
class Big {
private FeatureHolder FH = new FeatureHolder();
void feature() {
// Delegate to FeatureHolder.
FH.feature();
}
//.. Other features
}
À partir de l'exemple ci-dessus, Big.fonction() appel de fonction de FH comme il est sans le modifier. De cette façon, la Grande classe n'a pas besoin de contenir de la mise en œuvre de la fonctionnalité (séparation du travail). Aussi, la fonction de() peut mettre en œuvre différemment par d'autres classe comme "NewFeatureHolder" et Grands peuvent choisir d'utiliser la nouvelle fonctionnalité de titulaire à la place.
composition: Mon objet se compose d'autres objets qui ne peuvent pas exister après mon objet est destryed-ordures.
agrégation: Mon objet se compose d'autres objets qui peuvent vivre même après mon objet est détruit.
Technially, la Composition est "partie" de l'Agrégation et de l'est "voir" de la relation. Vos bras sont partie de vous. Si vous ne vivez plus, votre bras va mourir aussi. Votre linge n'est pas une partie de vous, mais vous les avez; comme vous pouvez l'invité, votre linge ne va pas avec vous.
Dans la programmation, certains objets font partie d'un autre objet, et ils n'ont pas de logique, de sens sans elle. Par exemple, un bouton est composé dans un cadre de fenêtre. Si un cadre est fermé, le bouton n'a pas de raison d'être autour de plus (Composition). Un bouton peut faire référence à une base de données (comme pour refreash de données); lorsque le bouton est éliminé, la base de données peut encore être de l'ordre (Agrégation).
Désolé pour mon anglais, Espérons que cette aide