Skip to content

Работа с интерфейсами

Библиотека предоставляет аннотацию &Реализует, которая позволяет указать, что класс должен реализовать указанный интерфейс. Интерфейс должен быть представлен модулем, имя которого и указывается в аннотации.

bsl
Процедура МетодИнтерфейса(Параметр) Экспорт
КонецПроцедуры
bsl
Процедура МетодИнтерфейса(Параметр)
    Сообщить(Параметр);
КонецПроцедуры

&Реализует("МойИнтерфейс")
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Класс МойКласс объявляет, что он реализует интерфейс МойИнтерфейс и должен содержать метод МетодИнтерфейса.

Проверка реализации интерфейса осуществляется с помощью класса ВалидаторРеализации. В валидатор можно передавать как сам объект, который необходимо проверить, так и его тип.

bsl
#Использовать extends

ВалидаторРеализации = Новый ВалидаторРеализации();
ВалидаторРеализации.ИнтерфейсыРеализованыКорректно(Тип("МойКласс"));

В случае, если класс не реализует все методы интерфейса, будет выброшено исключение. Под реализацией подразумевается наличие всех методов интерфейса с совпадающим количеством параметров метода.

Класс может объявлять, что он реализует несколько интерфейсов, повторяя аннотацию &Реализует для каждого интерфейса.

bsl
&Реализует("МойИнтерфейс")
&Реализует("МойДругойИнтерфейс")
Процедура ПриСозданииОбъекта()
КонецПроцедуры