2009-09-14 2 views
4

У меня есть Visual Studio 2008 с Resharper, кто-нибудь знает, есть ли какие-либо рефакторинги, которые позволяют вам создать класс и использовать переменную-член как mixin?Как (visual studio 2008/Resharper) refactor/automate mixin pattern

В качестве базового примера вы можете захотеть реализовать определенный интерфейс и использовать 95% базового кода уже существующего объекта (например, списка), есть ли способ легко подключить эти методы автоматически? (Предположим, что класс я хочу использовать функции из герметизируют и наследуя от него и преобладающих методов не вариант

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

Это своего рода образец типа Decorator Decorator, не так ли? –

+0

Я считаю, что его просто считали либо композицию, либо более известную как миксин. Сам шаблон не является проблемой, он автоматически переустанавливает внутренние методы объектов непосредственно на интерфейс объектов компоновки. – mrwayne

+0

Да, он также известен как шаблон дизайна Decorator. –

ответ

5

Вы можете сделать это с помощью Alt -. Вставка (Генерация кода) клавиши быстрого вызова Выберите Делегирование участников во всплывающем окне, и он откроет диалоговое окно, в котором вы можете выбрать нужные методы.

Убедитесь, что вы сделали это перед тем, как выбрать «Использовать интерфейс», иначе вы закончите с дублирующие методы и, следовательно, ошибку компиляции.

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

+0

Ваш гений! Спасибо – mrwayne

+0

Отлично! Я смог использовать эту информацию вместе с http://www.jetbrains.com/resharper/webhelp/Code_Generation__Delegating_Members.html, чтобы создать адаптер для статического класса! –

Смежные вопросы