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.
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