-
Souci Pattern Decorator
Salut a tous,
J'ai plusieurs decorateurs pour des formes geometriques qui me servent a enrichier ces formes.
Quand j'empiles mes decorateurs, je me trouve confronte a un probleme auquel je n'avais pas pense avant la conception et qui risque de me couter cher ...
Code:
boost::shared_ptr<ShapeProfilsDecorator> decorated_rectangle = boost::shared_ptr<ShapeProfilsDecorator>( new ShapeProfilsDecorator( boost::shared_ptr<ShapeTransformDecorator>(new ShapeTransformDecorator (rect)) ) );
Cette declaration fonctionne evidemment bien. Je peux appeler les methodes de ShapeProfilsDecorator sur mon objet. En revanche, je n'ai pas acces a celles de la classe ShapeTransformDecorator.
Y a t il un moyen d'avoir acces aux methodes des deux classes dans ce cadre ?
-
Si mes souvenirs sont bons, on ne devrait pas appelé soi-même directement ces méthodes, ce sont les opérations de la classe qui le font, non ?
-
OK, merci.
Mais, y a t il un solution au probleme que je pose ?
PS : je n'ai jamais eu l'occasion de le faire, alors j'en profite, merci pour ton tut. sur la BGL ...
-
A mon avis, la solution se trouve :
- http://smeric.developpez.com/java/uml/decorateur/
- http://pcaboche.developpez.com/artic...ge=page_2#L1.2
(désolé de ne pas répondre plus en détail, j'ai pas trop de temps en ce moment)
-
Merci. En revanche, pas trouvé la solution. Si tu as un peu de temps, n'hésite pas à faire une réponse plus détaillée ...
Merci
-
Le décorateur consiste à appeler la même méthode dans les classes, le décorateur appelant lui même la méthode sur l'objet décoré (avant ou après selon le décorateur). Donc si tu as besoin d'appeler les méthodes de ta classe décorée, c'est sans doute que tu n'as pas appliqué correctement le pattern décorateur.