Идентификатор (ID) – уникальный признак, по которому можно отличать объекты. Во множестве объектов по данному признаку можно найти необходимый. В повседневной жизни примером может служить номер мобильного телефона, который у каждого абонента является уникальным.
В выполняемой лабораторной работе для задания уникальности объекта, в сущности, используется поле, содержащее уникальное числовое значение(идентификатор). Так как объектов может быть большое количество, то оправданным является использование переменной типа long для хранения идентификаторов.
Каждый идентификатор надо представить уникальным значением, для этого реализуется механизм генерации уникальных чисел. Сначала создается класс IdGenerator, в котором присутствует статическая переменная step типа long и статический метод getId().
При вызове метода getId() выполняется генерация и возврат уникального числа. Сам процесс генерации заключается в получении момента времени в виде целого числа и прибавлении к нему переменной step, увеличенной на единицу. Так как метод getId() является статическим, то генерировать ключ можно без создания экземпляра класса IdGenerator, простым вызовом метода IdGenerator::getId();.
class IdGenerator
{
static long step;
public:
static long getId();
};
long IdGenerator::step = 0;
long IdGenerator::getId()
{
return time(0) + IdGenerator::step++;
}