Domanda

Sto leggendo attraverso Architettura di soluzioni Microsoft .NET per l'Enterprise e cerco di capire un paio di cose riguardanti il presentatore e il livello di servizio.

Prima di tutto, il mio presentatore deve chiamare metodi che risiedono nel livello di servizio, come inizializzare (), salvare () ecc. Ma dove posizionerò un riferimento al livello di servizio?Dovrebbe essere a livello di classe nel presentatore, o dovrei definire un nuovo servizio nei metodi del presente stesso?

Secondo - Questo non è davvero chiaro nel libro - è così come funziona l'elaborazione dal presentatore al livello di servizio ?:

public void ProcessPrediction()
    {
        //Get the data from the View
        string selectedForPolePosition = predictionPageView.DriverPolePosition;
        string selectedForSecondPosition = predictionPageView.DriverSecondPosition;
        string selectedForThirdPosition = predictionPageView.DriverThirdPosition;
        string selectedForFourthPosition = predictionPageView.DriverFourthPosition;
        string selectedForFifthPosition = predictionPageView.DriverFifthPosition;
        string raceTitle = predictionPageView.RaceTitle;

        //Prepare for sending to the Service Layer
        PredictionDTO prediction = new PredictionDTO();
        prediction.RaceTitle = raceTitle;
        //More Filling of the DTO here....
        //...
        //...

        IPredictionService predictionService = new PredictionService();
        predictionService.ProcessPrediction(prediction);
    }
.

È stato utile?

Soluzione

 IPredictionService predictionService = new PredictionService();
.

Questo dipenderà davvero da un sacco di fattori:

    .
  • Lifetime del servizio e vita del Presenter
  • Se stai usando qualsiasi strumento di strumento
  • se il servizio deve essere smaltito
  • Se il servizio ha un timeout inattivo (ad esempio se è un proxy wcf )

    Così in sostanza, non è necessariamente un design architettonico - è più una decisione di progettazione.

    Se usi un strumento di strumento, vuoi:

     IPredictionService predictionService = diContainer.Resolve<IPredictionService>();
    
    .

    o addirittura meglio , nessuno di cui sopra e solo dichiararlo come proprietà e di strumento possono popolarlo quando crea il presentatore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top