Следуя странным шаблонам для некоторых, я не могу этого сделать?Компилятор говорит Invalid constraint for formal generic parameter
class PARENT[G -> CHILD[like Current]]
feature -- Access
children: LIST[G]
end
class CHILD[H -> PARENT[like Current]]
feature -- Access
father: H
end
, чтобы иметь возможность сделать что-то вроде
class WIDOW_PARENT
inherit
PARENT[BLACK_CHILD]
end
class BLACK_CHILD
inherit
CHILD[WIDOW_PARENT]
end
Если я не сделаю это с универсальностью, мне придется переопределить коллекцию детейот
children: LIST[CHILD]
до children: LIST[BLACK_CHILD]
в класс WIDOW_PARENT father: PARENT
до father: WIDOW_PARENT
в класс BLACK_CHILD
вместо толькоукажите это в предложении наследования ... Надеюсь, это имеет смысл
Обновление
Когда я решил это с ответом Александера, я застрял дальше, делая проверку соответствия.Я пытаюсь установить HTTP-маршрутизатор в зависимости от сущностей, и если это дочерняя сущность, она должна иметь возможность http://host:port/entity/child_entity/id, чтобы получить все дочерние сущности от сущности.Для этого я хотел бы добавить в общий маршрутизатор чек.На что-то вроде ANY_PARENT_DB_ENTITY
, например
if ({G}).conforms_to ({CHILD_DB_ENTITY[ANY_PARENT_DB_ENTITY]}) then
friend.act_like_a_father
else
friend.act_like_a_mate
end