2012-09-22 3 views
2

Pourquoi avoir besoin d'une classe Contexte dans un modèle de stratégie? Par exemple, je veux compresser des fichiers en utilisant la compression zip ou rar. Nous pouvons résoudre ce problème en utilisant un modèle de stratégie avec les fichiers suivants.Pourquoi nous avons besoin d'une classe de contexte dans un modèle de conception de stratégie?

1.ICompressionStrategy...Its interface 
2.ZipCompressionStrategy ..implements IcompressionStrategy 
3.RarCompressionStrategy ..implements IcompressionStrategy 
4.CompressionContext..Inject IcompressionStrategy 
5.Client..Inject CompressionContext 

Dans le scénario ci-dessus, pourquoi avons-nous besoin de la classe CompressionContext? pourquoi ne puis-je pas injecter IcompressionStrategy dans la classe Client?

Quel est l'avantage d'utiliser la classe CompressionContext dans le scénario ci-dessus? puis-je éviter cela?

Voici l'exemple que je parle

http://java.dzone.com/articles/design-patterns-strategy

Répondre

1

L'idée du modèle de stratégie consiste à personnaliser une partie d'une tâche à l'aide d'une stratégie variable.

Le contexte, dans l'exemple ci-dessus, fait plus que simplement compresser une liste de fichiers. Il peut s'agir, par exemple, d'une classe qui parcourt une hiérarchie de dossiers, sélectionne les fichiers à compresser, les place dans une liste, utilise la stratégie de compression et écrit le résultat de la compression dans un autre emplacement. Cet algorithme peut être personnalisé en fournissant une stratégie de compression, qui est seulement utilisée pour l'étape de compression de l'algorithme entier.

+0

Cela a du sens. Merci Nizet! .. pouvez-vous s'il vous plaît me suggérer un bon lien ou un livre pour apprendre les modèles de conception en détail? –

+0

wikipedia est une bonne ressource pour les modèles de conception. Vous pouvez vous référer http://en.wikipedia.org/wiki/Design_Patterns (Voir la section Patterns By Type) – Atul

Questions connexes