MVP - ведущий и сервисный слой - где объявить сервисный слой

StackOverflow https://stackoverflow.com/questions/5451590

Вопрос

Я читаю через архитектуру решения Microsoft .NET для предприятия , и я стараюсь понять пару вещей в отношении докладчика и сервисного слоя.

forf Off, мой ведущий должен вызывать методы, которые находятся в сервисном слое, например инициализация (), сохраняют () и т. Д. Но где я предлагаю ссылку на сервисный слой?Если это будет на уровне класса в докладчике, или я должен определить новую услугу в самих методах докладчиков?

Второе - это не совсем понятно в книге, - это то, как работает обработка от презентатора на сервисный слой?:

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

Это было полезно?

Решение

 IPredictionService predictionService = new PredictionService();
.

Это действительно будет зависеть от многих факторов:

    .
  • срок службы и срока службы докладчика
  • Если вы используете любой инструмент DI
  • Если услуга должна быть расположена
  • Если у сервиса есть какой-то время ожидания (например, если он WCF прокси )

    Так по сути, это не обязательно архитектурный дизайн - это большее решение.

    Если вы используете инструмент DI, вы либо:

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

    или даже лучше , ни один из вышеперечисленного и просто объявить его как имущество, и di Tool может заполнить его, когда оно создает докладчик.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top