Как, используя паттерн Wapper (Decorator/Wrapper), наследовать запечатанный класс?

Есть класс PathFigureCollection, он является запечатанным, мне нужно наследовать его с помощью Wrapper'а.
  • Вопрос задан
  • 2790 просмотров
Решения вопроса 1
@stringer
Он для того и запечатан, чтоб не наследовался. Wrapper это не способ наследования. Вы можете на обёртке полностью воспроизвести интерфейс класса (ещё лучше если у PathFigureCollection есть декларированный интерфейс - заимплементить его) и пользоваться этой обёрткой вместо PathFigureCollection.

Как-то так:
public class PathFigureCollectionWrapper
{
  private PathFigureCollection _pfc;

  public PathFigureCollectionWrapper(PathFigureCollection pfc)
  {
    _pfc = pfc;
  }

  public int Method()
  {
    return _pfc.Method();
  }
}

нужные методы обёртки просто содержат вызовы обёрнутого экземпляра класса.
Решарпер, кстати, генерит обёртки в один клик.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы