Как указать, давая универсальный параметр, что он должен реализовывать какой-то конкретный метод создания? поскольку LIST[G -> create make end]
не работает: - (
В моем конкретном случае * SMA_INVERTER_MANAGER_CSV
унаследовал от CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
списокустройства как devices: LINKED_SET[G]
как G -> MEASURING_POINT_MODBUS_DEVICE create make_from_file_path end
.
Я бы хотел, чтобы класс SMA_INVERTER_MANAGER_CSV
мог в devices: LINKED_SET[G]
иметь возможность иметь JANITZA_DEVICE, SUNSPEC_DEVICE, ABB_DEVICE и т. д. Предоставление универсального параметракак MEASURING_POINT_MODBUS_DEVICE, кажется, выходит из какого-то смысла, но как мне указать, что я хотел бы, чтобы метод создания был make_from_file_path
Надеюсь, описание достаточно для понимания, рефакторинг, я думаю, этот вопрос связан -> явный тип создания, не соответствующий типу цели
Единственный обходной путь на данный момент, который я нашел работающим на данный момент, это
class
SMA_INVERTER_MANAGER_CSV
inherit
CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV[SUNSPEC_DEVICE]
create
make
end
, но мне бы хотелосьбыть
class
SMA_INVERTER_MANAGER_CSV
inherit
CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV[MEASURING_POINT_MODBUS_DEVICE]
create
make
end
, что приведет к проблеме соответствия, потому что MEASURING_POINT_MODBUS_DEVICE
универсальный параметр не определяет make_from_file_path
в качестве процедуры создания в качестве своей отложенной