Décorateur modèle exemple
Je passais par le Décorateur et vu que chaque deuxième exemple utilise une Résumé décorateur classe et également de mettre en œuvre l'interface de la classe pour laquelle le décorateur doit être créé. Ma question est,
- Est-il nécessaire d'avoir un résumé décorateur de classe et de définir ensuite le béton décorateurs ?
- J'ai créé un exemple qui, je pense, peut ressembler à de la fonctionnalité qui est réalisé par le ci-dessus mentionné classe Abstraite approche.
public interface ICarModel { Int32 Price { get; } Int32 Tax { get; } } public class BaseModel : ICarModel { public Int32 Price { get { return 50000; } } public Int32 Tax { get { return 5000; } } public String GetBaseCarDetails() { return "Base car model Price is : " + this.Price + " and Tax is : " + this.Tax; } } public class LuxuryModel { ICarModel _iCarModel; public LuxuryModel(ICarModel iCarModel) { _iCarModel = iCarModel; } public Int32 Price { get { return _iCarModel.Price + 10000; } } public Int32 Tax { get { return _iCarModel.Tax + 3000; } } public String GetLuxuryCarDetails() { return "Luxury car model Price is : " + this.Price + " and Tax is : " + this.Tax; } }
Peut-on dire que c'est un exemple de la décoratrice modèle ?
autant que je sache, le
Votre 1ère question est un double possible de this
il semble être la même question, mais malheureusement, je ne suis pas en mesure d'interpréter le sens exact qu'il essaie d'expliquer ici. U peut jeter un peu de lumière sur cette explication ?
j'ai essayé de l'expliquer dans ma réponse ci-dessous.
get{ }
propriété est exclusive à C#. Ne sais pas si.Votre 1ère question est un double possible de this
il semble être la même question, mais malheureusement, je ne suis pas en mesure d'interpréter le sens exact qu'il essaie d'expliquer ici. U peut jeter un peu de lumière sur cette explication ?
j'ai essayé de l'expliquer dans ma réponse ci-dessous.
OriginalL'auteur Tech Jay | 2013-11-21
Vous devez vous connecter pour publier un commentaire.
Mise à jour
Je suppose que vous pourriez éviter
abstract
mais alors vous devez écrire le même code pour tous vos classes. Le but deabstract
est d'éviter toute redondance de code et assurer la protection de vos classes de se conformer à la même logique. Il est également plus facile à maintenir et à grande échelle.Décorateur Modèle
J'ai fait une explication, j'espère que ça a du sens.
selon votre commentaire, je pense que si nous utilisons les interfaces et les DI, il n'y aura pas de code redondant. Nous avons juste besoin de passer à la appropriée de la dépendance à l'aide des interfaces de conteneur.
Comme je vous l'ai dit, il n'est pas nécessaire, mais elle est d'étudier les meilleures pratiques à cet effet, il est un modèle de conception. Si vous avez un modèle, il n'y a pas une grosse affaire. Mais si vous avez beaucoup de choses et beaucoup de méthodes trop mettre en œuvre un résumé de la classe devient à portée de main. Ce DI signifie? l'injection de Dépendance?
OriginalL'auteur giannis christofakis
L'intention de le décorateur modèle est tout simplement d'étendre le comportement d'un type existant de telle manière que les consommateurs de ce type n'avez pas besoin de connaître les détails de mise en œuvre de la façon dont il a changé.
Il n'y a aucune exigence pour tout des types abstraits. Vous pouvez faire cela avec des interfaces ou avec des méthodes virtuelles sur les classes de béton.
+1
consumers of that type don't need to know the implementation details
OriginalL'auteur Martin Cron
Model1 est un décorateur qui délègue une partie de ses getPrice " la logique de la decoree 'CarModel'
Mais que faire si il y a Model2, Model3 etc., dont la logique de "getPrice" la méthode est la même?
Dans de tels cas, il est logique de créer un Résumé décorateur
OriginalL'auteur themanwhosoldtheworld