Wie zu Produzieren, Prototyp-Objekten von singleton? (Design-Hilfe benötigt)

Ich bin relativ neu auf Frühling und ich habe mich eingegraben in ein Loch. Ich bin versucht zu Modell motor cars. Jedes Modell hat eine eigene builder-Objekt, und ich habe eine BuilderFactory, dass gibt den richtigen generator, basierend auf der Auswahl des Benutzers aus einer web-app.

So, ich bin auf der Suche nach Anregungen auf, wie man diesen Ansatz problem wo muss ich erstellen Sie eine Reihe von einzelnen Fahrzeugen, aber ich weiß nicht, was für ein Fahrzeug brauche ich noch, bis der run-time, und jedes Fahrzeug muss eindeutig sein, um den Benutzer.

Was ich habe, im moment ist unten dargestellt. Ich habe das problem im moment ist, dass, weil die einzelnen Bauherren sind singletons, so sind die einzelnen Fahrzeuge. Ich brauche Sie
zu Prototypen. Ich weiß, es sieht alles ziemlich schrecklich, so dass ich bin sicher, es muss einen besseren Weg, dies zu tun.

Der obersten Ebene aus der web-app aussieht;

Vehicle vehicle = vehicleBuilderFactory.getBuilder(platform).build();

Meine vehicleBuilderFactory sieht wie folgt aus;

@Service
public class VehicleBuilderFactory {

@Autowired
Discovery3Builder discovery3Builder;
@Autowired
Discovery4Builder discovery4Builder;

    //Lots of @Autowired statements here. 

@Autowired
FreeLander2010Builder freeLander2010Builder;



public VehicleBuilder getBuilder(Platform platform) {

    switch (platform.getId()) {

    case 1: return discovery3Builder;
    case 2: return discovery4Builder;

            //Lots of case statements here

            case 44: return freeLander2010Builder;
    default: return null;
    }
}

}

welche selbst sieht ziemlich schrecklich. Jeder einzelne generator aussieht;

@Service
public class DefenderBuilder implements VehicleBuilder {

@Autowired
Defender defender;

//Loads of Defender specific setters ommitted  
@Override
public Vehicle build() {
    return defender;
}

}

und schließlich die einzelnen Fahrzeug

@Service
@Scope("prototype")
public class Defender extends Vehicle {

}

Das Hauptproblem nun ist, dass, weil die Bauherren sind singletons, so sind die Fahrzeuge, und
Ich brauche Sie, um Prototypen, da dem Benutzer Ein Defender ist anders an Benutzer B den Defender.

InformationsquelleAutor user497087 | 2011-05-26
Schreibe einen Kommentar