Не совсем,
Обеспечение правильного уровня абстракции - это знание того, сколько информации с нижних уровней нужно пройти через ваш уровень.
Предположим, вы писали высокоуровневую библиотеку HTTP.Возможно, вы бы предоставили метод Get (), метод Head (), метод Post () и т. Д., Но вам не нужно предоставлять доступ к базовым сокетам, поскольку вы абстрагируете эту деталь от пользователя.
И ниже того Сокета, который вы используете, есть уровни абстракции, с которыми вам не нужно иметь дело.(Вы получаете доступ к абстракции только на один уровень ниже себя, за исключением того, что работа с этим уровнем заключается в том, чтобы иметь дело со слоем под ним и т. Д.)
Например, вам не важен протокол управления потоком в скользящем окне, потому что TCP абстрагирует эти детали.
-
Если вы кодируете слишком высокий уровень абстракциислой для целей, которые вы пытаетесь достичь, вы столкнетесь с несколькими деталями реализации.Когда вы боретесь с библиотекой за контроль, это говорит о том, что, возможно, вы работаете на слишком высоком уровне.
И наоборот, если вы кодируете на слишком низком уровне абстракции, вы потеряетесь в деталях реализации.Возвращаясь к моему примеру HTTP, если вы просто хотите выполнить запрос Get к серверу и внедрили рукопожатие TCP в своем коде, то, возможно, вы либо захотите попробовать использовать библиотеку, либо абстрагировать свой код TCP в библиотеку.и взаимодействовать с ним через это.
-
В одном уроке, который я проводил по этому предмету, у учителя был интересный метод объяснения абстракций.Он заставил нас думать о них просто как о «точке зрения» или «перспективе» на объект или сценарий.
Детали, которые важны с одной точки зрения, совсем не важны с другой точки зрения.
Он поставил книгу на стол и назначил ученикам такие роли, как «Читатель», «Продавец книг», «Автор», «Библиотекарь» или «Грузоотправитель», и спросил нас, какие подробности о книгемы думали, что были важны для нас в этой роли.Исходя из списка, назначенного человеку, его ответы сильно различались.
Это абстракция.Нужны только те детали, которые важны для вас, и позволить всем другим деталям быть обработанными в другом месте (или просто упасть на обочину).