Интерфейсы
- Определяют контракт между 2 модулями. Не может иметь никакой реализации.
- Большинство языков позволяет Вам реализовывать несколько интерфейсов
- , Изменение интерфейса является повреждающимся изменением. Все реализации должны быть перекомпилированы/изменены.
- Все участники общедоступны. Реализации должны реализовать всех участников.
- Интерфейсы помогают в Разъединении. Можно использовать ложные платформы для насмешки чего-либо позади интерфейса
- , Интерфейсы обычно указывают на своего рода поведение
- , Интерфейсные реализации разъединяются / изолированный друг от друга
, Базовые классы
- Позволяют Вам добавлять [приблизительно 1 116] значение по умолчанию реализация, которую Вы получаете бесплатно деривацией
- Кроме C++, можно только произойти из одного класса. Даже если мог от нескольких классов, это обычно - плохая идея.
- Изменение базового класса относительно легко. Деривации не должны делать ничего специального
- , Базовые классы могут объявить защищенные и государственные функции, к которым могут получить доступ деривации
- , Абстрактные базовые классы нельзя дразнить легко как интерфейсы
- , Базовые классы обычно указывают на иерархию типа (A)
- , деривации Класса могут произойти для зависимости от некоторого основного поведения (имейте сложное знание родительской реализации). Вещи могут быть грязными, если Вы вносите изменение в базовое внедрение для одного парня и повреждаете другие.
задан Peter Mortensen 2 June 2018 в 10:41
поделиться