У меня есть проект, над которым я работаю (http://github.com/lusis/vogeler). Одна из целей - обеспечить возможность поддержки с возможностью резервного копирования и обмена сообщениями. Я думаю, что у меня есть работоспособная модель, но я хотел получить от толпы Python информацию о лучших практиках. Вы можете увидеть новую реализацию здесь:Правильный способ создания слоя абстракции в python
http://github.com/lusis/vogeler/blob/master/vogeler/db/generic.py
couch2.py это мой подкласс родовым.
По существу общий класс предоставляет общий набор интерфейсов (createdb, usedb, create, update), которые вызывают частные методы, такие как _create_db, _use_db и т. Д.
Мое предположение, что материал базы данных будет подклассифицировать GenericPersistence и переопределить частные методы. Это считается плохой формой? Переопределение частных методов в целом кажется странным, но конечным результатом является то, что он работает. Я просто хочу убедиться, что я не нарушаю какой-то неписанный контракт о подклассе в Python.
Вы должны посмотреть на модуль 'abc', чтобы сделать ваш общий объект абстрактным классом – Daenyth
Я думаю, что модуль abc может быть переполнен на этом этапе? Мне нужно будет прочитать более подробную информацию об этом, но беглый взгляд заставил меня подумать, что это было (overkill). – lusis