Аннотация над X - PullRequest
       38

Аннотация над X

0 голосов
/ 11 июня 2010

Извините за этот связанный с английским вопрос, но я встречал это выражение только в контексте ИТ. Что означает абстракция над чем-то? Например, абстрагирование над объектами или абстракция над классами. Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2010

В этом контексте слово «абстрактный» происходит от лямбда-исчисления, где оно означает «сделать что-то параметром» (параметр значения или параметр типа). Слово используется более широко с другими видами параметров; Например, механизмы «общего программирования» часто включают способы абстрагирования над классами.

Вероятно, самый простой язык для абстрагирования объектов и классов - Smalltalk, где все (включая каждый класс) - это объект. Smalltalk, как и Ruby, тесно связанный с Smalltalk, имеет «типизацию утки», поэтому, например, вы можете «абстрагироваться» от любого класса коллекции, написав код Smalltalk, который использует только методы, общие для всех классов коллекции. Вы можете абстрагироваться от объектов коллекции аналогичным образом.

0 голосов
/ 11 июня 2010

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

Этот случай не так интересен. А теперь, если вы вытянули операцию сложения и сделали ее аргументом. Теперь у вас есть функция, которая принимает два аргумента и применяет к ним вызовы третьего как функцию. Здесь вы абстрагировали операцию от функции.

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

...