@KPIshnik

Collection of generic plugins. How to?

У меня следующее задание:
имеется некий клас
abstract class Plugin<T>
    {
        public abstract T Modify(T param);
    }

Нужно написать класс который хранит коллекцию плагинов и сам есть плагином. Метод modify должен выполнять все плагины коллекции к param.
Помогите с идеями как это сделать.
  • Вопрос задан
  • 2212 просмотров
Пригласить эксперта
Ответы на вопрос 2
sealed class CompoundPlugin<T> : Plugin<T> {
  private readonly IReadOnlyList<Plugin<T>> plugins;

  public CompoundPlugin(IReadOnlyList<Plugin<T>> plugins) {
    Contract.Requires<ArgumentNullException>(plugins != null, "arg");
    Contract.Requires<ArgumentException>(plugins.Count > 0);

      this.plugins = plugins;
  }

  public override T Modify(T param) {
    return plugins.Aggregate(param, (arg1, plugin) => plugin.Modify(arg1));
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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