Представьте, что у вас есть интерфейс для взаимодействия с некоторыми хранилищами. Клиент/пользователь интерфейса должен иметь возможность хранить и извлекать объекты. Кроме того, у вас будут «виды» объектов в хранилище, а при хранении или извлечении клиент должен указать, какой объект они хранят или извлекают. Поскольку нам нравятся типы и строки abhor, они будут делать это с помощью типов. Итак:
interface ObjectStorage
{
void storeObject(object, type);
object retrieveObject(type);
}
Реализация интерфейса хотел бы указать только те типы, которые она способна обрабатывать, и поэтому определяет типы идти с реализацией интерфейса.
«Согласованная абстракция» в этом контексте означает, что абстракция интерфейса должна быть на одном уровне. Несовместимая абстракция будет определение типов реализации в интерфейсе, например, так:
interface ObjectStorage
{
void storeObject(object, FileType);
FileType retrieveObject(FileType);
}
это будет связывать любую реализацию работать исключительно с FileType
с или их подтипами.
Надеюсь, что я был несколько последователен в своем ответе.
Предоставление некоторого контекста поможет. –
@Joachim - Обобщение концепции для работы с классами в ООП – Rachel
Является ли это потому, что утверждение взято из Стандартной книги по информатике, и поэтому люди не хотят комментировать ее? – Rachel