Интерфейс + Базовый класс - Какой это шаблон? - PullRequest
2 голосов
/ 10 января 2011

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

Существует ли какая-либо схема, в которой описан этот тип использования интерфейса? Или такая архитектура неэффективна?

Привет

1 Ответ

2 голосов
/ 10 января 2011

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

Подробнее об этом документе .

...