LIBGDX Anexo Consellos de programacion

De Manuais Informática - IES San Clemente.
Revisión del 12:26 14 sep 2014 de Angelfg (discusión | contribs.) (→‎Uso de cadeas)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

UNIDADE 2: Consellos de programación


Uso de new´s

Sempre que se poida debemos evitar o uso de new's dentro de calquera método que poida dar lugar a un número de chamadas elevado, sobre todo no método render.

Para evitalo só temos que crear a propiedade no constructor da clase e cambiarlle o seu valor en vez de asinarlle un novo valor.

Un exemplo:

public class Exemplo{

        /** Definimos o vector temporal **/
	private Vector3 temporal;

	public Exemplo() {

            temporal = new Vector3();   //  Instanciamos unha vez....
        }

        public void render(float delta){
           temporal.set(x+delta*2,10,0);   // Dámoslle valores sen instanciar no método render
        } 
}


Uso de cadeas

Debemos evitar o uso de cadeas concatenadas dentro de procedementos que estean no método render, xa que ó facelo estamos a crear novas cadeas dándolle un novo espazo de memoria. Cada vez que facemos un + entre dúas cadeas se crea un novo obxecto String que despois ten que eliminar o garbage collector.

Para solucionalo podemos facer uso da clase StringBuilder.


private StringBuilder stringbuilder;
stringbuilder = new StringBuilder(20);  // Num. de caracteres


stringbuilder.setLength(0);            // Borra o texto
stringbuilder.append("Engade cadea");  // Engade unha nova cadea
stringbuilder.delete(0,2); // Borra os 3 primeiros caracteres


Nota: Tamén poderíamos facer uso da clase StringBuffer. Esta clase é menos rápida que StringBuilder, xa que é sincronizada. Quere isto dicir que cando temos varios fíos de execución que acceden ós mesmos datos de cadea, deberíamos usar a clase StringBuffer. No resto de casos é mellor StringBuilder.

Podedes consultar este enlace para ver as diferenzas.





-- Ángel D. Fernández González -- (2014).