El proceso de creación de clases para usarlas en los proyectos puede parecer desalentador. Sin embargo, la tarea más difícil de la creación de una clase es su diseño, es decir, la identificación de los métodos, propiedades y eventos que va a incluir.
Estrategias de diseño de una clase
El tema del diseño orientado a objetos es complejo; algunas personas han dedicado toda su carrera al estudio académico y la práctica profesional de esta disciplina. Sin embargo, a continuación se sugieren algunos enfoques que pueden ayudarle a comenzar.
-
Considere la función que desempeñarán las instancias de esta clase en la aplicación. Normalmente, los objetos desempeñan una de estas tres funciones:
-
Objeto de valor: estos objetos actúan principalmente como contenedores de datos. Es probable que tengan varias propiedades y pocos métodos (o algunas veces ninguno). Normalmente son representaciones de código de elementos claramente definidos. Por ejemplo, una clase Song (que representa una sola canción real) o una clase Playlist (que representa un grupo conceptual de canciones) en una aplicación de reproductor de música.
-
Objetos de visualización: son objetos que aparecen realmente en la pantalla. Por ejemplo, elementos de interfaz de usuario como una lista desplegable o una lectura de estado, o elementos gráficos como las criaturas de un videojuego, etc.
-
Estructura de aplicación: estos objetos desempeñan una amplia gama de funciones auxiliares en la lógica o el procesamiento llevado a cabo por las aplicaciones. Por ejemplo, puede hacer que un objeto realice determinados cálculos en una simulación biológica. Puede hacer un objeto responsable de sincronizar valores entre un control de dial y una lectura de volumen en una aplicación de reproductor de música. Otro puede administrar las reglas de un videojuego. O bien, puede crear una clase que cargue una imagen guardada en una aplicación de dibujo.
-
Decida la funcionalidad específica que necesitará la clase. Los distintos tipos de funcionalidad suelen convertirse en los métodos de la clase.
-
Si se prevé que la clase actúe como un objeto de valor, decida los datos que incluirán las instancias. Estos elementos son buenos candidatos para las propiedades.
-
Dado que la clase se diseña específicamente para el proyecto, lo más importante es proporcionar la funcionalidad que necesita la aplicación. Quizá le sirva de ayuda formularse estas preguntas:
-
¿Qué elementos de información almacenará, rastreará y manipulará la aplicación? Esta decisión le ayudará a identificar los posibles objetos de valor y las propiedades.
-
¿Qué conjunto de acciones realiza la aplicación? Por ejemplo, ¿qué sucede cuando la aplicación se carga por primera vez, cuando se hace clic en un botón determinado, cuando una película deja de reproducirse, etc? Éstos son buenos candidatos para los métodos. También puede ser propiedades, si las “acciones” implican cambiar valores individuales.
-
Para cualquier acción, ¿qué información es necesaria para realizar esa acción? Estos elementos de información se convierten en los parámetros del método.
-
Mientras la aplicación lleva a cabo su trabajo, ¿qué cambiará en la clase que deba ser conocido por las demás partes de la aplicación? Éstos son buenos candidatos para los eventos.
-
¿Existe algún objeto similar al que se necesita, excepto que carece de cierta funcionalidad adicional que desea añadir? Considere la creación de una subclase. (Una
subclase
es una clase que se basa en la funcionalidad de otra clase existente, en lugar de definir su propia funcionalidad.) Por ejemplo, para crear una clase que sea un objeto visual en pantalla, utilice el comportamiento de un objeto de visualización existente como base para la clase. En este caso, el objeto de visualización (por ejemplo, MovieClip o Sprite) sería la
clase base
y su clase sería una ampliación de dicha clase.
Escritura del código de una clase
Cuando ya tenga un diseño para la clase, o al menos alguna idea de la información que almacena y de las acciones que necesitará realizar, la sintaxis real de escritura de una clase es bastante sencilla.
A continuación se describen los pasos básicos para crear su propia clase de ActionScript:
-
Abra un documento de texto nuevo en el programa editor de texto de ActionScript.
-
Introduzca una sentencia
class
para definir el nombre de la clase. Para añadir una sentencia
class
, indique las palabras
public class
y a continuación el nombre de la clase. Añada llaves de cierre y apertura que contengan el contenido de la clase (las definiciones de la propiedad y el método). Por ejemplo:
public class MyClass
{
}
La palabra
public
indica que es posible acceder a la clase desde cualquier otro código. Para conocer otras alternativas, consulte Atributos del espacio de nombres de control de acceso.
-
Escriba una sentencia
package
para indicar el nombre del paquete que contiene la clase. La sintaxis consta de la palabra
package
, seguida del nombre completo del paquete, más las llaves de apertura y cierre alrededor del bloque de sentencias
class
). Por ejemplo, cambie el código en el paso anterior a lo siguiente:
package mypackage
{
public class MyClass
{
}
}
-
Defina cada propiedad de la clase con la sentencia
var
en el cuerpo de la clase. La sintaxis es la misma que se usa para declarar cualquier variable (añadiendo el modificador
public
). Por ejemplo, si se añaden estas líneas entre las llaves de apertura y cierre de la definición de clase, se crearán las propiedades
textProperty
,
numericProperty
y
dateProperty
:
public var textProperty:String = "some default value";
public var numericProperty:Number = 17;
public var dateProperty:Date;
-
Defina cada método de la clase con la misma sintaxis empleada para definir una función. Por ejemplo:
-
Para crear un método
myMethod()
, introduzca:
public function myMethod(param1:String, param2:Number):void
{
// do something with parameters
}
-
Para crear un constructor (el método especial al que se llama como parte del proceso de creación de una instancia de una clase), cree un método cuyo nombre coincida exactamente con el nombre de la clase:
public function MyClass()
{
// do stuff to set initial values for properties
// and otherwise set up the object
textVariable = "Hello there!";
dateVariable = new Date(2001, 5, 11);
}
Si no incluye un método constructor en la clase, el compilador creará automáticamente un constructor vacío en la clase. (Es decir, un constructor sin parámetros ni sentencias.)
Existen algunos otros elementos de la clase que pueden definirse. Estos elementos presentan mayor complejidad.
-
Los
descriptores de acceso
son un cruce especial entre un método y una propiedad. Cuando se escribe el código para definir la clase, el descriptor de acceso se escribe como un método, de forma que es posible realizar varias acciones, en lugar de simplemente leer o asignar un valor, que es todo lo que puede hacerse cuando se define una propiedad. Sin embargo, cuando se crea una instancia de la clase, se trata al descriptor de acceso como una propiedad y sólo se utiliza el nombre para leer o asignar el valor.
-
En ActionScript, los eventos no se definen con una sintaxis específica. Los eventos se definen en la clase utilizando la funcionalidad de la clase EventDispatcher.
|
|
|