Соответствие регулярного выражения для проверки действительного года

Случай для Базовых классов по Интерфейсам был объяснен хорошо в Подосновных Инструкциях по Кодированию.NET:

Базовые классы по сравнению с Интерфейсами интерфейсный тип является частичным описанием значения, потенциально поддерживаемого многими типами объектов. Используйте базовые классы вместо интерфейсов, когда это возможно. С точки зрения управления версиями классы более гибки, чем интерфейсы. С классом можно поставить Версию 1.0, и затем в Версии 2.0 добавляют новый метод к классу. Пока метод не абстрактен, любые существующие производные классы продолжают функционировать неизменные.

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

  1. Несколько несвязанных классов хотят поддерживать протокол.
  2. Эти классы уже установили базовые классы (например, некоторые - средства управления пользовательским интерфейсом (UI), и некоторые - веб-сервисы XML).
  3. Агрегирование не является соответствующим или реальным. Во всех других ситуациях наследование классов является лучшей моделью.
75
задан Alexis Tyler 25 February 2017 в 13:17
поделиться