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 originalpublic static void main(String[] args) {
Carro sandero = new Carro();
sandero.mover();
el singleton segun con otro codigo que tengo seria asi
Código Javascript
:
Ver originalpublic static void main(String[] args) {
Singleton singleton1=Singleton.getSingleton();
Singleton singleton2=Singleton.getSingleton();
Singleton singleton3=Singleton.getSingleton();
if(singleton1==singleton2)
System.out.println("Son el mismo objeto ");
else
System.out.println("no son el mismo objeto ");
singleton1.set(5);
singleton2.set(3);
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 originalpublic static void main(String[] args) {
Carro sandero = new Carro();
Camioneta explorer = new Camioneta();
Helicoptero halcon1 = new Helicoptero();
Crucero titanic = new Crucero();
Avioneta cesna = new Avioneta();
Carro delorean = new Carro();
sandero.mover();
explorer.mover();
halcon1.mover();
titanic.mover();
cesna.mover();
delorean.setAlgoritmoMover(new AlgoritmoVolando());
delorean.mover();
delorean.setAlgoritmoMover(new AlgoritmoTimeTravel());
delorean.mover();
}
uno de los metodos el cual crea new AlgoritmoManejando
Código Javascript
:
Ver originalpublic class Carro extends Vehiculo {
public Carro() {
setAlgoritmoMover(new AlgoritmoManejando());
}
}
Código Javascript
:
Ver originalpublic class AlgoritmoManejando implements AlgoritmoMover {
public void mover() {
System.out.println("Voy manejando");
}
}
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 originalfinal class Singleton {
private static final Singleton singleton=new Singleton();
private Singleton(){
}
private int x;
public static Singleton getSingleton(){
return singleton;
}
void set(int x){
this.x=x;
}
int getx(){
return x;
}
}
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

