Я должен согласиться с вашим сотрудником, ваши имена классов являются «раздражающим».
В ActionScript 3 мы используем имя пакета для определения пространства имен класса. Если вы не уверены, что пространство имен означает, принять определение Википедии (на момент написания):
«В общем, пространство имен является контейнером для набора идентификаторов (имена), и позволяет неоднозначность идентификаторов омонимов, проживающих в разных пространствах имен. "
Таким образом, вы никогда не столкнетесь с именами классов, если вы правильно назовете свои пакеты. Большинство разработчиков используют так называемую нотацию обратного домена, чтобы назвать их пакеты (например, com.mywebsite.MyGenericNamedClass). Доменные имена уникальны, поэтому очень маловероятно, что вы столкнетесь с другим классом.
Как правило, имя класса должно быть как можно более наглядным, поэтому некоторые из ваших имен классов будут такими же, как чей-либо класс.Возьмите класс Sprite по умолчанию, например:
import flash.display.Sprite;
import uk.co.mywebsite.Sprite;
если вы затем инициализировать объект:
var mySprite:Sprite = new Sprite();
компилятор не будет знать, какие Sprite вы хотите инициализировать (это вспышка спрайт или ваши собственные спрайт), и это вызовет ошибку.
Решение просто: потому что ваши пакеты были названы правильно, все, что вам нужно сделать, это использовать полное имя класса, включая имя пакета для инициализации объекта:
var mySprite:uk.co.mywebsite.Sprite = new uk.co.mywebsite.Sprite();
var myOtherSprite:flash.display.Sprite = new flash.display.Sprite();
заметь, вы бы редко нужно это делать. Это необходимо, только если вы хотите использовать эти два класса (по умолчанию Sprite и собственный Sprite) в той же области. Как правило, вы импортируете только свой класс:
/* we are not importing this any more
import flash.display.Sprite;*/
//only importing my own class
import uk.co.mywebsite.Sprite;
/* now I can initialize my object without using the full class name, and the compiler knows
I mean my own Sprite class */
var mySprite:Sprite = new Sprite();
Поддерживает ли ваш язык пространство имен? –
kNo kacto kit kis knot ka kbad kidea ka klot kof kframeworks kdo комплект. Csometimes Cthe Cprefixes Cmake Tmore Rsense Mthen LPCSTRothers –
«Случайным символом или двумя», вы имеете в виду, что каждому классу присваивается случайный, другой? Если каждый имеет префикс по-разному, да, это очень плохая форма (невозможно просто узнать имя!). Если ваш язык поддерживает пространства имен, вы должны использовать это вместо этого. Если нет, THEN вы рассматриваете префикс с символами (многие, многие фреймворки делают это ... каждый из OSX (NS) для инструментальных средств GUI Linux, для Windows (не в .Net, а в фреймворках C/C++). – Kitsune