2009-09-14 7 views
4

J'ai Visual Studio 2008 avec Resharper, est-ce que quelqu'un sait s'il y a des refactorings disponibles qui vous permettent de créer une classe et d'utiliser une variable membre comme un mixin? À titre d'exemple de base, la plupart du temps, vous pourriez vouloir implémenter une interface particulière et utiliser 95% du code sous-jacent d'un objet déjà existant (comme une liste), est-il possible de relier facilement ces méthodes automatiquement? (Supposons que la classe que je veux utiliser la fonctionnalité de est obturée et héritant de et méthodes prépondérants n'est pas une optionComment (visual studio 2008/Resharper) refactor/automate mixin pattern

class CustomList : IList<string> 
{ 
    List<string> m_list 

    void Add(string val){ m_list.Add(val) } 
    void Delete(string val){ m_list.Delete(val) } 
    ....etc 
} 
+1

Ceci est une sorte de modèle de type Extract Decorator n'est-ce pas? –

+0

Je crois que c'est juste considéré comme une composition ou plus communément connu sous le nom d'un mixin. Le motif en lui-même n'est pas le problème, il re-câblage automatiquement les méthodes d'objets internes directement à l'interface des objets de composition. – mrwayne

+0

Oui, il est également connu sous le nom de motif de conception 'Decorator'. –

Répondre

5

Vous pouvez le faire via le Alt -. Insérer (Générer le code) touche de raccourci Sélectionnez Déléguer les membres

Assurez-vous de le faire avant de sélectionner «Implémenter l'interface», sinon vous finirez avec dupliquer les méthodes, et donc une erreur de compilation

alt text http://i26.tinypic.com/24mc3yv.png

+0

Votre génie! Merci – mrwayne

+0

Excellent! J'ai pu utiliser cette information avec http://www.jetbrains.com/resharper/webhelp/Code_Generation__Delegating_Members.html afin de générer un adaptateur à une classe statique! –