Интерфейсы и свойства

В Терракота мы используем AOP и инструментарий байт-кода довольно экстенсивно для интеграции с и инструментальное стороннее программное обеспечение. Например, наш Spring intergration выполняется в значительной степени при помощи aspectwerkz. Короче говоря мы должны прервать вызовы к бобам Spring и бобовым фабрикам в различных точках для кластеризации их.

, Таким образом, AOP может быть полезен для интеграции со сторонним кодом, который не может иначе быть изменен. Однако мы нашли, что существует огромная ловушка - если это возможно, только используйте сторонний API общественности в своих точках соединения, иначе Вы рискуете повреждать свой код изменением в некотором закрытом методе в следующем незначительном выпуске, и это становится кошмаром обслуживания.

28
задан Vegar 11 August 2009 в 13:12
поделиться

2 ответа

Нет. Интерфейсы реализованы в виде таблиц функций (в основном это простая таблица виртуальных методов), и компилятор должен знать, что есть функция, на которую нужно сопоставить свойство. Вы можете объявить свойство в интерфейсе, но оно должно иметь функции как значения получателя / установщика, а не поля. Однако вы можете сделать его доступным только для чтения или только для записи.

35
ответ дан 28 November 2019 в 03:26
поделиться

При работе со свойствами в интерфейсе считайте свойство ярлыком для средства чтения / записи. Для выполнения ярлыка требуется только один ... иначе он ни на что не указывает.

8
ответ дан 28 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: