Зачем использовать слово "invalidate", чтобы запросить пересмотр вида?

В графическом интерфейсе, когда требуется перерисовать представление. Обычно мы делаем это следующим образом:

View v = View (); 
v.invalidate() 

Я не знаю, что операция "invalidate()" является таким именем. На английском языке "invalidate" означает сделать что-то недействительным. Но "invalidate view" в программировании GUI предназначен для того, чтобы сделать вид перерисовываться. Я не являюсь носителем английского языка. Пожалуйста, дайте мне подсказки. Tks.

Ответ 1

Чтобы "сделать недействительным представление" означает, что все данные, которые могут быть сделаны, уже недействительны. Вид данных недействителен, поэтому invalidate() обозначает его как таковой. Это меньше того, что функция делает ее недействительной настолько, насколько она уже недействительна, но никто, кроме вызывающего пользователя invalidate(), пока не знает. Цель этой функции - сообщить остальной части кода, что данные представлений теперь недействительны.

Ответ 2

Invalidate семантически отличается от перерисовки в том, что он обычно отмечает только что-то, что нужно перерисовать позже, в отличие от перерисовки во время вызова. Идея состоит в том, что когда несколько возможных перекрывающихся областей становятся недействительными, количество перерисовки в более позднее время может быть затем равно равным сумме неперекрывающихся областей. То есть, мы можем перерисовать только один раз для нескольких последующих недействительных. Следовательно, существует различие между перерисовкой и аннулированием.