Подтвердить что ты не робот

Каково определение детали реализации?

Я вижу этот термин в Интернете много (на самом деле, набрав его в google, вы получите много результатов).

Каково точное определение "детали реализации"?

4b9b3361

Ответ 1

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

Например, если вы должны написать какой-то код в интерфейсе списка, который задавал сортировку массива, но не используемый алгоритм, и вам нужен метод сортировки стабильный, а версия вашего кода использовалась с нестабильным алгоритмом сортировки, тогда ваш код сломался.

Ответ 2

Я не знаю точное формальное определение термина "подробности реализации", оно обычно относится к конкретной реализации определенной спецификации.

Возьмите List, например.

Спецификация List может сказать, что "он может хранить несколько значений с дубликатами при сохранении порядка".

Из вышесказанного не упоминается, какая структура данных поддержки используется для List - для всех, кого мы знаем, это может быть массив или связанный список. Это действительно деталь реализации, которая действительно остается за разработчиком List.

Ответ 3

"Детализация реализации" - это решение, которое разработчики оставляют за собой, и не указано на более раннем уровне (например, документ требований или, в зависимости от контекста, архитектурный документ.)