Question

Mon professeur est un très bon et je tends à comprendre ses points, mais celui-ci va un peu plus de ma tête. Il explique la méthode de modèle en deux variantes;
- Unification: la variante standard, qui est composé d'une classe abstraite avec des méthodes abstraites définissant les parties variables de l'algorithme autre fixe
. - Séparation:. Sa propre variante (? Je crois) où une classe contient les TemplateMethod () et utilise la délégation à une interface pour faire varier les parties de l'algorithme, qui me ressemble exactement comme le modèle de stratégie

Quelqu'un peut-il voir ce que son point, et comment la variante « de séparation » est différent du modèle de stratégie
Je joins une image contenant les deux motifs de son livre (qui n'est pas encore publié).

http://img64.imageshack.us/img64/3620/strategytemplate.jpg

Était-ce utile?

La solution

Je ne l'ai jamais entendu parler d'une « variante de séparation » du motif de la méthode du modèle, et je suis d'accord qu'il semble très similaire à la stratégie. Même s'il y a un raisonnement sur la propriété de l'interface ou la façon dont vous les appeler à partir d'un point de vue du client que je trouve à peine il n'y a aucun avantage à les considérer différents modèles.

Autres conseils

Dans l'usage courant, la méthode de modèle utilise sous-classes pour fournir les comportements variés. Avec la stratégie, vous inject un objet algorithme. Dans votre exemple, il n'y a pas de distinction utile entre Modèle (séparation) et Stratégie. Compte tenu de l'âge de la Gamma et al livre, l'introduction de cette nouvelle terminologie withou expliquant adéquatement la différence est susceptible de causer simplement la confusion quand vous parlez à d'autres programmeurs. Evitez de l'utiliser en dehors de vos leçons.

Modèle vous permet d'accéder aux membres protégés dans la classe de base. Stratégie vous permet de vous développer des algorithmes plus Losely couplés à partir des objets qui les utilisent, et vous permet d'injecter le même algorithme dans différents types d'objets.

Modèle Méthode:

  1. Il est un modèle de conception comportementale
  2. il est utilisé pour créer un stub de méthode et de reporter certaines des étapes de mise en œuvre aux sous-classes. Il se compose de certaines étapes dont l'ordre est fixé.
  3. Il définit les étapes pour exécuter un algorithme et il peut fournir l'implémentation par défaut qui pourrait être commune pour tout ou partie des sous-classes.
  4. méthode de modèle superclasse appelle des méthodes de sous-classes,

modèle de stratégie:

  1. Il est un modèle de comportement
  2. Il est basé sur la délégation
  3. Il change cran de l'objet en modifiant le comportement de la méthode
  4. Il est utilisé pour basculer entre la famille d'algorithmes
  5. Il modifie le comportement de l'objet au moment de l'exécution. Un algorithme sera choisi parmi une famille de l'algorithme.

Des différences fondamentales.

  1. méthode de modèle utilise l'héritage et Stratégie utilise la composition
  2. méthode de modèle mis en œuvre par la classe de base ne doit pas être surchargée. De cette façon, la structure de l'algorithme est contrôlé par la classe super et Les détails sont mis en œuvre dans les sous-classes
  3. Stratégie encapsule l'algorithme derrière une interface, qui nous fournit la capacité de changer l'algorithme au moment de l'exécution. Des stratégies multiples offrent différentes à l'interface mise en œuvre.

Jetez un oeil à Journaldev méthode modèle et articles de stratégie pour une meilleure compréhension avec sourcemaking articles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top