Делегат ThreadStart
по сути такой же, как интерфейс Runnable
. Делегат похож на интерфейс для одного метода, а не для всего класса, поэтому его проще реализовать, чем интерфейс Runnable
в Java.
MSDN рассказывает о делегатах :
Делегаты и интерфейсы похожи
в том, что они позволяют разделение
спецификация и реализация.
Несколько независимых авторов могут
производить реализации, которые
совместим с интерфейсом
Спецификация. Точно так же делегат
указывает сигнатуру метода,
и авторы могут написать методы, которые
совместим с делегатом
Спецификация. Когда вы должны использовать
интерфейсы, и когда вы должны использовать
Делегаты?
Делегаты полезны, когда:
- Вызывается один метод.
- Класс может захотеть иметь несколько реализаций метода
спецификация.
- Желательно разрешить использование статического метода для реализации
спецификация.
- Желателен шаблон событийного типа (для получения дополнительной информации см.
Учебник мероприятий).
- Вызывающему не нужно знать или получать объект, который метод
определено на.
- Поставщик реализации хочет "раздать"
реализация спецификации для
только несколько выбранных компонентов.
- Требуется легкая композиция.
Интерфейсы полезны, когда:
- Спецификация определяет набор связанных методов, которые будут
называется.
- Класс обычно реализует спецификацию только один раз.
- Вызывающий интерфейс хочет привести к интерфейсу или из него.
тип для получения других интерфейсов или
классы.