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

Что означает "прозрачный" и "непрозрачный", когда применяется к концепциям программирования?

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

Google предлагает множество примеров использования слова "прозрачный", например:

а также кучу результатов для "непрозрачных", в основном связанных с понятиями C:

хотя я также видел слово, используемое в контекстах, не связанных с C.

Оставляя в стороне их использование в определенных сложных терминах, таких как "непрозрачный указатель", какие значения имеют слова, прозрачные и непрозрачные, в рамках программирования? Являются ли они друг другом противоположностями, как визуальные концепции, с которыми они метафорически ссылаются, или они не связаны друг с другом?

4b9b3361

Ответ 1

В приведенных вами примерах прозрачный используется для обозначения скрытых в смысле вещей, происходящих автоматически за кулисами (т.е. без использования кода или программы для взаимодействия).

Opaque также используется для обозначения скрытых, что, возможно, связано с путаницей. Термин непрозрачный тип имеет конкретное значение в C/С++, где он относится к типу, который был объявлен, но еще не определен.

В обоих случаях, я думаю, люди используют эти термины, чтобы выразить отсутствие видимости. Прозрачный используется там, где что-то присутствует, но вы его не видите. Непрозрачный используется там, где что-то присутствует, но вы не можете видеть его внутри, чтобы проверить его внутреннюю работу.