Синонимайзер: автоматический режим
Сегодня я начал работу над автоматическим режимом для синонимайзера. Работа автоматического режима будет основана на плагинах. Автомат разделен на три, в общем, независимые части.
Первая часть: провайдер чтения данных. Им может быть любой плагин, который берет данные из любого источника. Источники данных могут быть разными: файлы на диске, база данных, RSS, страницы сайта. В качестве провайдера для множественных данных могут служить любые плагины, реализующие интерфейс ICollectionReaderPlugin, который имеет все необходимые методы для навигации по коллекции элементов источника.
Вторая часть - синонимайзер. Это будет часть самого синонимайзера, которая использует стандартный класс программы.
Третья часть - провайдер записи данных. Им может быть любой плагин, который записывает данные в любой приемник данных. Приемников данных может быть много: фтп, аггрегатор новостей, почта, блоги, база данных. Плагин для записы данных должен реализовать интерфейс ICollectionWriterPlugin, который имеет все необходимые методы для последовательной записи в приемник данных.
Данные передаются из источника в приемник с помощью объекта, реализующего интерфейс IPluginDataObject. В этом объекте из одного провайдера в другой передаются все возможные параметры, которые могут быть использованы как для чтения данных, так и для их записи. К примеру, это может быть идентификатор строки в таблице базы данных, который нужно использовать без изменений в таблице-приемнике. Впрочем, это, пожалуй, является единственным случаем, когда какие-либо данные должны передаваться из источника в приемник без изменений.
Реализацию формы автоматической обработки текстов можно будет продолжать после того, как будет реализована пара провайдеров для чтения и записи данных.
Первыми будут реализованы провайдеры для работы с текстовыми файлами. Эти плагины будут бесплатными и будут входить в поставку программы.



Последние комментарии