Pregunta

Estoy leyendo a través de Soluciones de Arquitecto Microsoft .NET para la empresa e intento de imaginar un par de cosas relativas al presentador y la capa de servicio.

En primer lugar, mi presentador necesita llamar métodos que residen en la capa de servicio, como inicializar (), guardar (), etc. ¡Pero, ¿a dónde coloco una referencia a la capa de servicio?¿Debería ser a nivel de clase en el presentador, o si debo definir un nuevo servicio en el propio métodos del presentador?

segundo: esto tampoco está realmente claro en el libro, ¿es así de cómo funciona el procesamiento del presentador a la capa de servicio?:

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);
    }

¿Fue útil?

Solución

 IPredictionService predictionService = new PredictionService();

Esto dependerá realmente de muchos factores:

  • vida útil del servicio y vida útil del presentador
  • Si está utilizando alguna herramienta DI
  • si el servicio necesita ser eliminado
  • Si el servicio tiene algún tiempo de espera inactivo (por ejemplo, si es un proxy WCF )

    En esencia, no es necesariamente un diseño arquitectónico, es más de decisión de diseño.

    Si usa una herramienta DI, usted:

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

    o incluso mejor , nada de lo anterior y simplemente lo declara como propiedad y una herramienta DI puede rellenarlo cuando crea el presentador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top