< Refactorización

Los métodos en línea es una técnica común utilizada en programación, es una aplicación directa de la definición de Refactoring en cuanto a la optimización de código cambiando su estructura interna sin afectar su funcionalidad, el caso especifico del método en linea se presenta cuando tenemos un o mas métodos cuyos códigos son lo suficientemente auto-explicativos como para poder prescindir de ellos. Bastará con sustituir las llamadas al método por el cuerpo de dicho método, aquí un ejemplo de ello:



    private void ElementoSalida(string x)
    {
       Console.WriteLine(x); //método que sirve para escribir por consola la variable que se le pase por parámetro
    }
    public IList<string> ConstruirListaYSalida(IEnumerable<string> x)
    { 
       IList<string> result = new List<string>();//instanciar la variable result en la clase IList
       foreach(string y in x)
       {
         result.Add(y);
         OutputItem(y);
       }
       return result;



se podría optar por modificar el código para evitar colocar repetidamente una llamada a ElementoSalida() en el mótodo, por lo que sería mas cómodo si hubiera escrito el código como el siguiente:


  public IList<string> BuildListAndOutput(IEnumerable<string> x)
  {
      IList<string> result = new List<string>();
      foreach(string y in x)
      {
          result.Add(y);
       // Todo el método de ElementoSalida se coloca Aquí
       Console.WriteLine(y);   
      }
      return result;
  }

En este caso, diríamos que la función de ElementoSalida() fue entre línea. Tenga en cuenta que podría hacer esto incluso si el ElementoSalida() se llama desde otros lugares así.

Referencias

  1. http://es.softuses.com/61745
  2. http://www.youtube.com/watch?v=Itl67XWTi2Q
  3. http://recacha.wordpress.com/2012/08/16/refactoring-en-eclipse-2-inline-method/
Este artículo ha sido escrito por Wikibooks. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.