class_desc/decorators
Декора́тор implement
Декора́тор implement предназначен для явного указания реализации интерфейса классом. Он гарантирует, что класс корректно реализует указанный интерфейс, предварительно проверив, что все требования интерфейса выполнены.
Основная информация
- Имя файла: anb_python_components\decorators\interface_decorators.py
- Автор: Александр Бабаев
- Версия: 1.0.0
- Дата начала поддержки: с версии 1.3.0
Атрибуты и методы декоратора
Параметры декоратора
interface: интерфейс, который должен быть реализован классом.
Работа декоратора
- Проверка интерфейса: сначала проверяется, является ли указанный аргумент настоящим интерфейсом (наследником класса
Interface). - Проверка реализации: далее выполняется строгая проверка того, что класс действительно реализует все методы интерфейса, включая проверку сигнатур методов.
- Добавление метаданных: после успешной проверки к классу добавляется специальный атрибут
__implements__, который содержит перечень реализуемых интерфейсов. - Интроспекция: каждому реализующему классу приписывается специальная метка (например,
__implements_MyInterface), позволяющая однозначно выявить, какой интерфейс реализован.
Пример использования
from anb_python_components import Interface, implement
class MyInterface(Interface):
def method (self):
pass
@implement(MyInterface)
class MyClass:
def method (self):
pass
Чем полезен декоратор?
- Контроль реализации: предотвращает непредвиденные ошибки, вызванные неполной реализацией интерфейса.
- Документация: четко обозначает, какие интерфейсы реализованы классом.
- Тестопригодность: позволяет легко писать тесты на уровне интерфейсов.
Заключение
Декоратор implement усиливает дисциплину проектирования и уменьшает риск появления ошибок при несоблюдении контракта интерфейса. Он рекомендуется для использования в проектах, где важна высокая степень надежности и прозрачности архитектуры.