Извините за этот вопрос, связанный с английским, но я столкнулся с этим выражением только в контексте ИТ. Что значит абстрагироваться от чего-либо? Например, абстрагирование над объектами или абстрагирование над классами. Спасибо
Аннотация над X
Ответы (2)
В этом контексте слово «абстрактный» происходит от лямбда-исчисления, где оно означает «сделать что-то параметром» (параметром значения или параметром типа). Слово используется более широко с другими типами параметров; например, механизмы «универсального программирования» часто включают способы абстрагирования от классов.
Вероятно, самым простым языком для абстрагирования объектов и классов является Smalltalk, где все (включая каждый класс) является объектом. Smalltalk, как и Ruby, который тесно связан с Smalltalk, имеет "утиную типизацию", поэтому, например, вы можете "абстрагироваться" от любого класса коллекции, написав код Smalltalk, который использует только методы, общие для всех классов коллекции. Аналогичным образом вы можете абстрагироваться от объектов коллекции.
То есть вытащить его для функции в качестве аргумента. Это имеет больше смысла в функциональном программировании, но представьте, что у вас есть функция, которая принимает целое число и добавляет к нему пять, вы можете сделать это переменной и иметь функцию суммирования, которая будет работать с любыми двумя целыми числами.
Этот случай не так интересен. А что, если вы подтянете операцию сложения и сделаете ее аргументом. Теперь у вас есть функция, которая принимает два аргумента и применяет к ним вызовы третьего как функции. Здесь вы абстрагировали операцию от функции.
Извините, это такое слабое объяснение, я исправлю это позже, когда у меня будет шанс. Это имеет смысл с парой хороших примеров, мне просто нужно запустить ATM.