универсальный класс для Updater-ов

Автор Тема: универсальный класс для Updater-ов  (Прочитано 2831 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
если Updater-ов создается несколько , есть ли способ создать универсальный класс , формирующий Updater-ы по единому шаблону?
возможно, есть готовый пример...

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: универсальный класс для Updater-ов
« Ответ #1 : 10-09-2018, 10:29:59 »
Эм. А зачем? Как бы вполне понятный интерфейс IUpdater и есть тот "шаблон".
Я у себя обычно ввожу расширенный интерфейс:
Код - C# [Выбрать]
  1. public interface IElementUpdater : IUpdater
  2. {
  3.         ElementFilter GetFilter();
  4.  
  5.         ChangeType GetChangeType();
  6. }

Чисто для удобства их регистрации:
Код - C# [Выбрать]
  1. public class UpdaterRegistratorHelper
  2. {
  3.         public void RegisterUpdater(IElementUpdater updater)
  4.         {
  5.                 UpdaterRegistry.RegisterUpdater(updater, true);
  6.  
  7.                 UpdaterRegistry.AddTrigger(updater.GetUpdaterId(), updater.GetFilter(), updater.GetChangeType());
  8.         }
  9.  
  10.         public void RegisterUpdaters(IEnumerable<IElementUpdater> updaters)
  11.         {
  12.                 foreach (var elementUpdater in updaters)
  13.                         RegisterUpdater(elementUpdater);
  14.         }
  15.  
  16.         public void SetExecutionOrder(IElementUpdater first, IElementUpdater second)
  17.         {
  18.                 UpdaterRegistry.SetExecutionOrder(first.GetUpdaterId(), second.GetUpdaterId());
  19.         }
  20. }