Эмуляция типа enum
Java сильно влияет на ActionScript разработчиков. Сегодня я попробую эмулировать тип данных
Например вот так:
package {
public class Fruit {
public static const Apple:Fruit=new Fruit(0);
public static const Pear:Fruit=new Fruit(1);
public static const Peach:Fruit=new Fruit(2);
private var _value:int;
public function Fruit(value:int) {
_value=value;
}
public function get value():int {
return _value;
}
}
}
этот вариант «более правильный и изящный с точки зрения архитектуры», однако я почему то предпочитаю вариант попроще -«некрасиво и убого, не нужно так писать»:
package {
public class Vegetable {
public static const Tomato:int=0;
public static const Onions:int=1;
public static const Cucumber:int=2;
}
}
К тому-же он работает в два с лишним раза быстрее. Но придется все таки изучать правильные и архитектурно изящные варианты. От этого зависит буду я хорошим программистом или говнокодером...
че-то это совсем не enum
а вопрос про программиста и говнокодера в контексте использования метода, который в 2 раза быстрее — что за фигня? http://onenterframe.ru/2009/09/20/%d1%81%d0%ba%d0%be%d1%80%d0%be%d1%81%d1%82%d1%8c-vs-oop/
И в чём в вашем варианте изящество?
@Valentin
Ну… мне сказали что именно так должен выглядеть enum в AS3 для совместимости с Java, и именно на такой стиль нужно ориентироваться.
Да, и в таком случае нельзя будет сравнивать Fruit с Vegetable, что может быть полезно
Если уж эмулировать, то наверное больше вот на это должно быть похоже:
@elmortem
Да, так было бы даже лучше. Чего уж там — намного изящнее.
@elmortem
Это автосгенерированный класс, поэтому лучше изначальный вариант(-1 int на enum)