En OOP, se menciona una delegación de término. ¿Cómo se modela esto en una clase? Busqué en Yahoo, etc., pero obtuve enlaces a los delegados.¿Qué es la delegación? ¿Cuándo querría usarlo?
6
A
Respuesta
20
Imagine que tiene las clases Car
y Engine
:
public class Car {
private Engine engine = new Engine(); //or inject it externally
public void start() {
engine.start();
}
}
En este ejemplo, los delegados a la Car
Engine
subyacente. El usuario del automóvil no puede encender el motor directamente (a menos que sea un mecánico). Pero puede decirle al auto que arranque, y el auto le dice al motor que arranque.
Lo deseará utilizar siempre que utilice la composición de objetos y necesite utilizar un método de uno de los objetos de composición. En ese caso, crea un método que le delegue.
Cuestiones relacionadas
- 1. ¿Qué es Request.InputStream y cuándo usarlo?
- 2. ¿Qué es ICustomTypeDescriptor y cuándo usarlo?
- 3. ¿Qué es __declspec y cuándo debo usarlo?
- 4. ¿Para qué es <spring:bind>? ¿Cuándo usarlo y cuándo no usarlo?
- 5. ¿Cuándo querría uno usar OneTuple?
- 6. ¿Cuándo usar == y cuándo usarlo?
- 7. ¿Qué es un simulacro y cuándo deberías usarlo?
- 8. ¿Qué es un ÍNDICE ESPACIAL y cuándo debería usarlo?
- 9. ¿Qué es el bean scope y cuándo usarlo?
- 10. ¿Qué es un MvcHtmlString y cuándo debería usarlo?
- 11. CompositeWPF: EventAggregator: ¿cuándo usarlo?
- 12. @ModelAttribute anotación, ¿cuándo usarlo?
- 13. Google App Engine: cuándo usarlo, cuándo no?
- 14. Cuándo usar la delegación en lugar de la herencia?
- 15. compuesto_de en Rieles: ¿cuándo usarlo?
- 16. ¿Qué es .inc y por qué usarlo?
- 17. ¿Por qué querría usar jQuery?
- 18. ¿Por qué querría usar interfaces?
- 19. ¿Qué es un MQ y por qué quiero usarlo?
- 20. ¿Para qué sirve XML y cuándo debería usarlo?
- 21. explicación de D_GNU_SOURCE ¿Por qué usarlo y cuándo?
- 22. ¿Para qué sirve AppDelegate y cómo sé cuándo usarlo?
- 23. ¿Qué significa "sin firmar" en MySQL y cuándo usarlo?
- 24. ¿Qué es MVVM, y deberíamos usarlo?
- 25. ¿Qué es LD_LIBRARY_PATH y cómo usarlo?
- 26. ¿Qué es JNI Graphics o cómo usarlo?
- 27. ¿Qué es EGL y cómo puedo usarlo?
- 28. ¿Cuándo alguien querría usar NSThreads en el GCD?
- 29. ¿Qué es un "Trabajo" (proceso secundario) en Windows y cuándo usarlo?
- 30. python y ruby: ¿para qué usarlo?
+1 Para ampliar esto. La herencia también delega, implícitamente al padre (s). Lo que describes arriba es una delegación explícita. – jer
@jer Creo que la herencia no hace delegación. La delegación está manejando la responsabilidad hacia algún otro objeto. El otro objeto puede ser de la misma clase o una clase totalmente diferente. Mientras que en el caso de la herencia, cada objeto comparte el mismo conjunto de métodos. – nktsg