Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обязательное переопределение метода в дочернем классе / 4 сообщений из 4, страница 1 из 1
21.07.2011, 07:45
    #37360428
Vixler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обязательное переопределение метода в дочернем классе
Собственно, сабж. Можно ли в каше в базовом классе написать метод, который обязательно нужно будет определить в производных (иначе ошибка компиляции)?
...
Рейтинг: 0 / 0
21.07.2011, 08:06
    #37360438
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обязательное переопределение метода в дочернем классе
Vixler,
1) Abstract
Ругаться будет не при компиляции, а при выполнении.
2) Если нужно все-таки, чтобы Cache ругался при компиляции, то можно написать свой метод-генератор на компиляцию, где проверять в %Dictionary.ClassDefinition (и %Dictionary.MethodDefinition) существование нужного метода.
...
Рейтинг: 0 / 0
21.07.2011, 08:29
    #37360451
Vixler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обязательное переопределение метода в дочернем классе
> можно написать свой метод-генератор на компиляцию

эмм... А можно поподробнее? Это перехватить какое-то событие? Что-то не вижу в документации подходящих.
...
Рейтинг: 0 / 0
21.07.2011, 13:11
    #37361041
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обязательное переопределение метода в дочернем классе
Vixler,
Method Generators
В Вашем случае будет что-то вроде такого кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
ClassMethod CheckMethod() [ CodeMode = objectgenerator ]
{
	s methodName = "MyMethod"
	q:(%class.Methods.FindObjectId(%class.Name_"||"_methodName) = "") $$$ERROR($$$MethodDoesNotExist,methodName)
	q $$$OK
}
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обязательное переопределение метода в дочернем классе / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]