Найти - Пользователи
Полная версия: Конфигурируемый импорт
Начало » Python для экспертов » Конфигурируемый импорт
1
Viper
Начну издалека, я сейчас пишу скрипт для тестирования сервера. Этот сервер общается с клиентом по специфическому протоколу, причём этого протокола есть уже несколько версий и вполне возможно будут добавляться ещё. Как правило следующая версия расширяет функционал предыдущей, но может и вносить некоторые изменения. Сам код тестов особо к версии протокола не привязан и по задумке должен выполнятся с той версией которую укажешь при старте. Сейчас все протоколы разнесены в отдельные модули и между собой никак не связаны, что жутко неудобно если нужно внести какие-то изменения. Импорт тоже реализован, мягко говоря, через одно место.

И вот тут как раз встаёт вопрос как это можно красиво реализовать?

Понимаю, что вопрос для вас несколько абстрактный, но хотелось бы услышать ваши советы и идеи по этому вопросу.
Андрей Светлов
А вы, собственно говоря, что спрашиваете? Ничего не понятно…
Isem
На мой взгляд, в отдельном модуле нужно сделать класс (пусть это будет DataParser или Protocoller) с единым унифицированным программным интерфейсом для работы со всеми протоколами, и он же будет базовым классом для всех остальных протоколов, каждый из которых будет работать со своим ‘разрозненным’ протоколом, реализованный в модуле, который у вас уже есть. Сервер ваш будет работать именно с этим базовым классом не подозревая о существовании разных протоколов. Добавив новый протокол (унаследованный от базового - Protocoller), достаточно будет в одном для всех месте создать его экземпляр и сервер будет с ним работать как с родным.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB