actionscript-3 public-method

actionscript 3 - Métodos públicos estáticos vs métodos públicos



actionscript-3 public-method (4)

¿Cuál es la diferencia entre un método público estático y un método público? ¿Por qué usarías un método público estático?


Los métodos de la clase de Matemáticas son estáticos. Entonces, al hacer

Math.round(average)

la clase de Matemáticas en sí misma no se modifica por lo que has hecho, solo devuelve un valor o actúa sobre el valor que pasas.

Entonces, los métodos estáticos son útiles para las utilidades. Cosas como

StringUtils.removeWhitespaceFrom(textContent:String):String

o

BrowserUtils.openInNewWindow(url:String):void

Es muy raro que uses un método estático para cualquier otra cosa. No utilice estáticos como ''getInstance ()'' para crear Singletons; busque en su lugar un marco para la inyección de dependencias.


Para aclarar su concepto, suponga que si desea saber cuántas veces se ha instanciado su clase, utilizará el contador de variables estáticas en su constuctor de clase, cada vez que se crea su objeto.

Luego debe usar el método estático para acceder a estos datos, de lo contrario puede declarar su variable como pública o predeterminada y acceder a ella con el nombre de clase, pero eso infringe los principios de OOP. aquí está el pequeño ejemplo

clase pública CAR {

Contador de varitas estáticas privadas: int = 0;

función privada CAR () {Counter ++; }

función estática pública ReturnTotalCarInstances (): int {contador de retorno; }

}

Las variables estáticas tienen su beneficio por eso se proporciona en la mayoría de los lenguajes de programación. El conteo de instancias es el uso pequeño de la variable estática. Se usan en un alcance mucho mayor. El punto principal es que se usa para compartir datos globalmente entre todos los objetos de Clase.


los métodos estáticos son métodos que no son específicos de ninguna instancia de una clase (objeto); son métodos que no tienen permitido contener estas referencias y usted puede acceder a ellos a través de la clase directamente (no a las instancias de los objetos)


Los métodos estáticos se pueden usar como constructores sobrecargados. ActionScript no tiene sobrecarga de funciones, por lo que a veces escribo algo así como:

public class Foo { public static function fromBar(bar:Bar):Foo { var foo:Foo = new Foo(); ... //initializing foo object from bar return foo; } public static function fromBaz(baz:Baz):Foo { var foo:Foo = new Foo(); ... //initializing foo object from baz return foo; } }