Этот вопрос был задан (и, вероятно, ответил) на старых форумах Haxe на болтовне ... но кажется, что весь форум больше не функционирует. Поэтому я прошу здесь:Haxe: как объявить «статические» методы в интерфейсе?
В Haxe мне нужно объявить «интерфейс» классу, который включает статическую функцию «instance()». Но когда я делаю так:
You can't declare static fields in interfaces
Так я удалить слово "статический" из public function instance() [...]
, и я получаю это: "Уловка-22"
Field instance needed by [...] is missing.
По-видимому, Но, очевидно, должно быть какое-то простое решение. Что это?
Практический пример - это просто, что этот класс имеет «открытый статический экземпляр функции»(), который возвращает экземпляр singleton. Приложение содержит несколько библиотек, которые должны ссылаться друг на друга как «extern», а это значит, что они должны знать об интерфейсе, который включает эту функцию. Другими словами, они должны иметь возможность вызвать эту функцию, среди прочих. Пожалуйста, уточните в своем ответе ... –
Почему вы хотите получить доступ к статическому полю интерфейса? Допустим, у вас есть интерфейс ISingleton, какой смысл делать ISingleton.instance? Что бы вы там ожидали? Статические поля следует вызывать непосредственно или ссылаться. Я также думаю, что лучше избегать одиночных игр. Вы можете найти много минусов в Интернете по этой теме. –