LIBGDX Anexo Consellos de programacion

De MediaWiki
Saltar a: navegación, buscar

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:

  1. public class Exemplo{
  2.  
  3.         /** Definimos o vector temporal **/
  4.         private Vector3 temporal;
  5.  
  6.         public Exemplo() {
  7.  
  8.             temporal = new Vector3();   //  Instanciamos unha vez....
  9.         }
  10.  
  11.         public void render(float delta){
  12.            temporal.set(x+delta*2,10,0);   // Dámoslle valores sen instanciar no método render
  13.         }
  14. }


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.


  1. private StringBuilder stringbuilder;
  2. stringbuilder = new StringBuilder(20);  // Num. de caracteres
  3.  
  4.  
  5. stringbuilder.setLength(0);            // Borra o texto
  6. stringbuilder.append("Engade cadea");  // Engade unha nova cadea
  7. 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 -- (2015).