Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2012, 17:07
Avatar de Tyreal
Tyreal
 
Fecha de Ingreso: noviembre-2011
Ubicación: ke-li
Mensajes: 39
Antigüedad: 13 años, 4 meses
Puntos: 0
patron Strategy y patron singleton

hola como estan. estoy bastante atorado con esto

tengo un codigo basado en el patron de diseño strategy(estrategia).
el patron de estagia seria asi
Código Javascript:
Ver original
  1. public static void main(String[] args) {
  2.  
  3.         Carro sandero = new Carro();
  4.  
  5.         sandero.mover();

el singleton segun con otro codigo que tengo seria asi

Código Javascript:
Ver original
  1. public static void main(String[] args) {
  2.       Singleton singleton1=Singleton.getSingleton();
  3.       Singleton singleton2=Singleton.getSingleton();
  4.       Singleton singleton3=Singleton.getSingleton();
  5.      
  6.       if(singleton1==singleton2)
  7.           System.out.println("Son el mismo objeto ");
  8.           else
  9.           System.out.println("no son el mismo objeto ");
  10.       singleton1.set(5);
  11.       singleton2.set(3);
  12.       System.out.println(singleton1.getx());

como podemos ver en el primero hago uso de contructores
y el segundo hago llamar el metodo.

mi pregunta es
que como aplico el singleton en el primer patron
yo tengo esto
mi main
Código Javascript:
Ver original
  1. public static void main(String[] args) {
  2.  
  3.         Carro sandero = new Carro();
  4.         Camioneta explorer = new Camioneta();
  5.         Helicoptero halcon1 = new Helicoptero();
  6.         Crucero titanic = new Crucero();
  7.         Avioneta cesna = new Avioneta();
  8.         Carro delorean = new Carro();
  9.  
  10.         sandero.mover();
  11.         explorer.mover();
  12.         halcon1.mover();
  13.         titanic.mover();
  14.         cesna.mover();
  15.         delorean.setAlgoritmoMover(new AlgoritmoVolando());
  16.         delorean.mover();
  17.         delorean.setAlgoritmoMover(new AlgoritmoTimeTravel());
  18.         delorean.mover();
  19.     }

uno de los metodos el cual crea new AlgoritmoManejando
Código Javascript:
Ver original
  1. public class Carro extends Vehiculo {
  2.  
  3.     public Carro() {
  4.         setAlgoritmoMover(new AlgoritmoManejando());
  5.     }
  6.  
  7. }
Código Javascript:
Ver original
  1. public class AlgoritmoManejando implements AlgoritmoMover {
  2.  
  3.     public void mover() {
  4.         System.out.println("Voy manejando");
  5.     }
  6.  
  7. }
segun me dijo el profe que no puedo usar cosntrctores cuando meto el singleton en esto
el ejemeplo que tengo del singleton para guiarme es este
Código Javascript:
Ver original
  1. final class Singleton {
  2.     private static final Singleton singleton=new Singleton();
  3.    
  4.     private Singleton(){
  5.        
  6.     }
  7.     private int x;
  8.    
  9.     public static Singleton getSingleton(){
  10.         return singleton;
  11.     }
  12.     void set(int x){
  13.         this.x=x;
  14.    
  15.     }
  16.     int getx(){
  17.         return x;
  18.     }
  19.   }
y lo que ya les puse al principio

el singleton hace llamar le metodo y realiza un ciclo if

mi pregunta es como hago llamar esos metodos sin en el main de los vehiculos sin la nesecidad de crearlos o de intsnciar de ellos

osea sin poner
Metodo metodo= new algo;

lo que me pidieron es no puedo usar el constructor del algoritmo
espero que me puedan ayudar

ya me despere