Я вижу этот термин в Интернете много (на самом деле, набрав его в google, вы получите много результатов).
Каково точное определение "детали реализации"?
Я вижу этот термин в Интернете много (на самом деле, набрав его в google, вы получите много результатов).
Каково точное определение "детали реализации"?
Это поведение, создаваемое кодом, на который можно положиться, употребляя код, хотя это поведение не указано спецификацией, на которую написан код. Следовательно, другие реализации одной и той же спецификации могут не проявлять одинакового поведения и нарушать этот код потребления. Вот почему им плохо полагаться на них.
Например, если вы должны написать какой-то код в интерфейсе списка, который задавал сортировку массива, но не используемый алгоритм, и вам нужен метод сортировки стабильный, а версия вашего кода использовалась с нестабильным алгоритмом сортировки, тогда ваш код сломался.
Я не знаю точное формальное определение термина "подробности реализации", оно обычно относится к конкретной реализации определенной спецификации.
Возьмите List
, например.
Спецификация List
может сказать, что "он может хранить несколько значений с дубликатами при сохранении порядка".
Из вышесказанного не упоминается, какая структура данных поддержки используется для List
- для всех, кого мы знаем, это может быть массив или связанный список. Это действительно деталь реализации, которая действительно остается за разработчиком List
.
"Детализация реализации" - это решение, которое разработчики оставляют за собой, и не указано на более раннем уровне (например, документ требований или, в зависимости от контекста, архитектурный документ.)