Как шаблон The Observer отличается от Управляемой событиями модели?

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

$scope.numberOfFails = 0

Затем увеличивайте его на 1 каждый раз, когда выполняется условие отказа, поэтому он учитывается при каждом сбое.

$scope.numberOfFails = 0
angular.forEach(result1, function(value, key) {

  $scope.percentage = (value.score * 100 / value.total).toFixed(2);

  if ($scope.percentage < 50) {
    $scope.rm = "Failed"
    $rootScope.sendmail = 0
    $scope.numberOfFails++
  } else {
    $scope.rm = "Passed"
    $rootScope.sendmail = 1
  }

});
console.log($scope.numberOfFails)

После этого вы получите $scope.numberOfFails в качестве правильного числа неудачных попыток.

16
задан Jeff Martin 30 April 2009 в 16:20
поделиться

4 ответа

Модель событий .NET в значительной степени представляет собой интегрированную реализацию шаблона наблюдателя в общеязыковой среде выполнения. Языки .NET реализуют обозреватель непосредственно в зависимости от языка, используя для этого встроенную поддержку фреймворка.

В большинстве языков программирования шаблон наблюдателя требует настраиваемой разработки или библиотек.

Он поставляется бесплатно как часть язык в C #, VB.NET и большинстве других языков, созданный для использования CLR.

20
ответ дан 30 November 2019 в 17:39
поделиться

Многие модели событий, такие как Java 1.1 и более поздние версии, а также модель событий .NET являются в основном реализациями шаблона Observer.

Обратите внимание, что это применимо даже к более старым механизмам, таким как как использование методов обратного вызова в C для обработки событий. Это то же самое намерение, только реализованное немного по-другому.

4
ответ дан 30 November 2019 в 17:39
поделиться

Why do you think there must be a difference?

Don't you think the .NET designers read Design Patterns as well?

Actually, the Observer pattern (like all in the book) were well known long before they were categorized and named by the Gof4. It was used to implement the .Net event model, as well as the Win32 & Win16 event models, and probably many others.

1
ответ дан 30 November 2019 в 17:39
поделиться

Из MSDN

Те из вы с мимолетным знакомством типов, представленных в FCL, будут обратите внимание, что нет IObserver, IObservable, или ObservableImpl присутствуют в Рамки. Основная причина их отсутствие заключается в том, что CLR в какой-то мере делает их устаревшими. Хотя вы, безусловно, можете использовать эти конструкции в приложении .NET, представление делегатов и мероприятий предоставляет новые и мощные средства реализация паттерна Observer без развития конкретных типов посвященный поддержке этого шаблона. В факт, как делегаты и события члены первого класса CLR, основа этого узора включены в самую сердцевину .NET Framework. Таким образом, FCL делает широкое использование паттерна Observer по всей своей структуре.

6
ответ дан 30 November 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: