Delegado en Java

MD Aminul Islam 12 octubre 2023
Delegado en Java

Si está trabajando con lenguajes de programación como Java, es posible que esté familiarizado con la herencia. Pero existe una alternativa a la herencia, la Delegación.

Puedes usar un objeto de otra clase como variable de instancia a través de la Delegación. De alguna manera, es mejor que la herencia ya que no lo obliga a aceptar métodos innecesarios de la superclase.

Además, la instancia es de una clase conocida. Llamamos a la Delegación un creador de relaciones entre los objetos donde un objeto puede reenviar una llamada de método a otro objeto.

La Delegación puede proporcionarle flexibilidad en el tiempo de ejecución. Pero el problema es que los lenguajes de programación más populares no soportan la Delegación.

En este artículo, veremos el uso de Delegación en Java. Además, discutiremos el tema usando un ejemplo con explicaciones adecuadas para facilitar el tema.

Delegación en Java

A continuación, veremos un ejemplo simple de Delegación y lo describiremos parte por parte.

class MainPrinter { // The class that hold the actual PrintData() method
  void PrintData() {
    System.out.println("This is the Delegate.");
  }
}

class MyPrinter { // The class that calls PrintData() method from the object of class MainPrinter
  MainPrinter p = new MainPrinter(); // Creating an object for MainPrinter class.
  void PrintData() {
    p.PrintData(); // Calling the method from MainPrinter class object.
  }
}

class TestDelegate {
  public static void main(String[] args) {
    MyPrinter printer = new MyPrinter(); // Creating an object for MyPrinter class.
    printer.PrintData(); // Calling the method from MyPrinter class object.
  }
}

Arriba, compartimos un ejemplo que ilustra Delegación. Ya ordenamos el propósito de cada línea en el código.

En el ejemplo anterior, creamos tres clases diferentes llamadas Impresora principal, Mi impresora y TestDelegate, donde la clase Impresora principal contiene el método real que imprimirá los datos.

Y la clase MyPrinter también contiene el método printData() que llama principalmente a otro método de otra clase llamada MainPrinter.

Pero si observa la clase de controlador denominada TestDelegate, puede ver que creamos un objeto de la clase MyPrinter donde la clase MyPrinter no tiene el método printData() real.

Después de ejecutar el código de ejemplo anterior, obtendrá un resultado como el siguiente.

This is the Delegate.

Tenga en cuenta que los ejemplos de código compartidos aquí están en Java y debe instalar Java en su entorno si su sistema no contiene Java.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn