Класс А
deferred Class A
feature --
item: X -- X is deferred
set_item_for_some_reason (param: N)
do
create item.make_from_param (param)
end
end -- class
Класс Б
Class B inherit
A
feature --
item: Y -- Y not deferred inherits from X
end -- class
Я хотел бы создать в том же классе атрибут, который будет определен в потомке, и получить ошибку Creator instruction applies to target of a deferred type
, которая имеет смысл в сокращенном контексте, но не в том контексте, в котором я намереваюсь это сделать.
Для меня имеет смысл иметь возможность создать объект в текущем отложенном классе, мне не нужно будет реализовывать его во всех потомках! что будет неправильным дизайном... что-то вроде этого:
deferred Class A
feature --
item: X -- X is deferred
set_item_for_some_reason (param: N)
do
set_item_from_param (param)
end
set_item_from_param (param: N)
deferred
end
end -- class
Class B inherit
A
feature --
item: Y -- Y not deferred
set_item_from_param(param: N)
do
create item.make_from_param (param)
end
end -- class
Я ошибаюсь в своем дизайне или это ограничение, которое все еще обсуждается в отношении компилятора Eiffel как я понял? и если да, то каков наилучший обходной путь?