Обобщённое программирование

Обобщённое программирование — это парадигма программирования, заключающаяся в написании алгоритмов, которые можно применять к различным типам данных. В том или ином виде поддерживается разными языками программирования. Возможности обобщённого программирования впервые появились в 70-х годах в языках CLU и Ada, а затем во многоих объектно-ориентированных языках, таких как C++, Java, D и языках для платформы .NET.

Содержание

C++

В языке C++ обобщённое программирование основывается на понятии «шаблон», обозначаемом ключевым словом template. Широко применяется в стандартной библиотеке C++ (см. STL), а также в сторонних библиотеках boost, Loki. Большой вклад в появление развитых средств обобщённого программирования в C++ внёс Александр Степанов.

Пример

Функция, возвращающее большее значение из двух.

template <typename T>
T max(T x, T y)
{
    if (x < y)
        return y;
    else
        return x;
}

Java

Java предоставляет средства обобщённого программирования, синтаксически основанные на C++, начиная с версии J2SE 5.0. В этом языке имеются generics или «контейнеры типа T» — подмножество обобщённого программирования.

.NET

На платформе .NET средства обобщённого программирования появились в версии 2.0.

Пример на C#

interface IPerson {
  string GetFirstName();
  string GetLastName();
}
class Speaker {
  public void speakTo<T>(T person) where T : IPerson {
    string name = person.GetFirstName();
    this.say("Hello, " + name);
  }
}

D

В языке «D» средства обобщённого программирования сделаны на основе C++.

Пример

template factorial(int n) {
    static if (n == 1)
        const int factorial = 1;
    else
        const int factorial = n * factorial!(n-1);
}
 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home