Question

Je lis à travers Architecting Microsoft .NET Solutions pour l'entreprise Et j'essaie de comprendre quelques choses concernant le présentateur et la couche de service.

Tout d'abord, mon présentateur doit appeler des méthodes qui résident dans la couche de service, comme initialiser (), sauver () etc. Mais où dois-je placer une référence à la couche de service? Doit-il être au niveau de la classe dans le présentateur, ou devrais-je définir un nouveau service dans les méthodes de présentateur elle-même?

Deuxièmement - ce n'est pas vraiment clair dans le livre non plus - est-ce ainsi que le traitement du présentateur à la couche de service fonctionne ?:

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);
    }
Était-ce utile?

La solution

 IPredictionService predictionService = new PredictionService();

Cela dépendra vraiment de nombreux facteurs:

  • Vie à vie du service et de la vie du présentateur
  • Si vous utilisez un outil DI
  • Si le service doit être éliminé
  • Si le service a un délai d'inactivité (par exemple s'il s'agit d'un Proxy WCF)

Donc, en substance, ce n'est pas nécessairement une conception architecturale - c'est davantage la décision de conception.

Si vous utilisez un outil DI, vous le feriez:

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

Ou encore mieux, Aucun des ci-dessus et le déclare simplement comme la propriété et l'outil DI peuvent le remplir lorsqu'il crée le présentateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top