В C# шаблон "наблюдатель" уже не реализован с помощью Событий?

Вместо вызова метода sendGetRequest () в прослушивателе просмотра пейджера, вызовите свой запрос GET в методе onCreateView в вашем фрагменте фрагмента class_two. Причина этого заключается в том, что вы гарантируете, что все ваши представления в фрагментаторе были правильно инициализированы через события жизненного цикла фрагмента.

32
задан Daniele D. 24 February 2016 в 10:50
поделиться

6 ответов

Да, это. Шаблон "наблюдатель" также называют публиковать/подписывать шаблоном, который является точно, что события позволяют Вам делать.

25
ответ дан 27 November 2019 в 20:32
поделиться

Да, это идентично.

примечание А: если Вы действительно хотите понять события, я рекомендую изучить шаблон "наблюдатель" и реализовать его сами некоторое время. После того как Вы полностью понимаете это, прекращаете делать его сами и используете профессиональную и хорошо зарегистрированную реализацию, если у Вас нет реальной потребности сделать иначе.

8
ответ дан 27 November 2019 в 20:32
поделиться

Я сказал бы да, это было намерение Anders Heljsberg сделать шаблон "наблюдатель" первоклассной функцией языка с событиями в C#, на основе его опыта с Delphi. Anders ясно дает понять это и другие намерения дизайна в превосходном интервью на предмет Радио .

Разработки программного обеспечения
22
ответ дан 27 November 2019 в 20:32
поделиться

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

4
ответ дан 27 November 2019 в 20:32
поделиться

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

Рассматривают различие:

public void NotifyObservers()
{
    foreach(Product product in ProductList)
    {
        if (product is IProductObserver)
        {
               product.Update(this)
        }
    }
}

Здесь очень ясно, какие продукты в списке уведомляются относительно изменения. В то время как отладка Вас может осмотреть ProductList...

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

4
ответ дан 27 November 2019 в 20:32
поделиться

Наиболее современные языки имеют собственную поддержку некоторых шаблонов разработки. Утверждалось, что языки лучше больше шаблонов, которые они поддерживают исходно без потребности реализовать их явно, и что Lisp превосходен в этом отношении. Jeff имел что-то для высказывания об этом, также.

0
ответ дан 27 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

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