Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/02/2012, 13:16
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: una uml a patron de diseño

Tienes que ir cambiando los estados si no no funcionará.

Hay varias formas, una es dentro de las subclases que heredan de la interfaz AlgVelocidad.

Código Java:
Ver original
  1. public class Abanico {
  2.  
  3. private AlgVelocidad algVelocidad;
  4.  
  5. public Abanico() {
  6.   algVelocidad = new VelBaja(this);
  7. }
  8.  
  9. public void setVelocidad(AlgVelocidad alg){
  10. algVelocidad=alg;
  11. }
  12. public void velocidad(){
  13. algVelocidad.velocidad();
  14. }
  15. }
  16.  
  17.  
  18.  
  19. public abstract class AlgVelocidad {
  20.  
  21. protected Abanico abanico;
  22.  
  23. public abstract void velocidad();
  24.  
  25.  
  26. }
  27.  
  28. public class VelBaja  extends AlgVelocidad{
  29.  
  30.  
  31. public VelBaja(Abanico abanico){
  32. this.abanico = abanico;
  33. }
  34.  
  35. @Override
  36. public void velocidad() {
  37. System.out.println("Baja");
  38. abanico.setVelocidad(new VelMedia(abanico));
  39. }
  40.  
  41. }
  42.  
  43. public class VelMedia extends AlgVelocidad{
  44.  
  45.  
  46. public VelMedia(Abanico abanico){
  47. this.abanico = abanico;
  48. }
  49.  
  50. @Override
  51. public void velocidad() {
  52. System.out.println("Media");
  53. abanico.setVelocidad(new VelAlta(abanico));
  54. }
  55.  
  56. }
  57.  
  58. public class VelAlta  extends AlgVelocidad{
  59.  
  60.  
  61. public VelAlta(Abanico abanico){
  62. this.abanico = abanico;
  63. }
  64.  
  65. @Override
  66. public void velocidad() {
  67. System.out.println("Alta");
  68. abanico.setVelocidad(new VelBaja(abanico));
  69. }
  70.  
  71. }