У меня есть 3 типа объектов: красный, зеленый и синий. У меня есть 3 вида устройств, которые обрабатывают каждый тип объекта, соответственно. Ни одно устройство не может обрабатывать более одного типа объектов. Каждый «обработчик объекта» имеет ссылку на объект, который он обрабатывает в настоящее время.
На Java я бы сделал что-то вроде этого:
public class RedObject {}
public class GreenObject {}
public class BlueObject {}
public class AbstractHandler<T> {
public T myObject;
}
public class RedHandler extends AbstractHandler<RedObject> {}
public class GreenHandler extends AbstractHandler<GreenObject> {}
public class BlueHandler extends AbstractHandler<BlueObject> {}
Есть ли не страшный способ сделать это на языке без дженериков? Я не хочу определять свойство myObject
отдельно для каждого подкласса, поскольку тогда я теряю преимущество наследования.
(Если это поможет, я пытаюсь сделать это на actionScript 3.)