class_desc/decorators


Декора́тор implement

Декора́тор implement предназначен для явного указания реализации интерфейса классом. Он гарантирует, что класс корректно реализует указанный интерфейс, предварительно проверив, что все требования интерфейса выполнены.

Основная информация

  • Имя файла: anb_python_components\decorators\interface_decorators.py
  • Автор: Александр Бабаев
  • Версия: 1.0.0
  • Дата начала поддержки: с версии 1.3.0

Атрибуты и методы декоратора

Параметры декоратора

  • interface: интерфейс, который должен быть реализован классом.

Работа декоратора

  1. Проверка интерфейса: сначала проверяется, является ли указанный аргумент настоящим интерфейсом (наследником класса Interface).
  2. Проверка реализации: далее выполняется строгая проверка того, что класс действительно реализует все методы интерфейса, включая проверку сигнатур методов.
  3. Добавление метаданных: после успешной проверки к классу добавляется специальный атрибут __implements__, который содержит перечень реализуемых интерфейсов.
  4. Интроспекция: каждому реализующему классу приписывается специальная метка (например, __implements_MyInterface), позволяющая однозначно выявить, какой интерфейс реализован.

Пример использования

from anb_python_components import Interface, implement

class MyInterface(Interface):
    def method (self):
        pass

@implement(MyInterface)
class MyClass:
    def method (self):
        pass

Чем полезен декоратор?

  1. Контроль реализации: предотвращает непредвиденные ошибки, вызванные неполной реализацией интерфейса.
  2. Документация: четко обозначает, какие интерфейсы реализованы классом.
  3. Тестопригодность: позволяет легко писать тесты на уровне интерфейсов.

Заключение

Декоратор implement усиливает дисциплину проектирования и уменьшает риск появления ошибок при несоблюдении контракта интерфейса. Он рекомендуется для использования в проектах, где важна высокая степень надежности и прозрачности архитектуры.

На главную