Эм… я вижу путаницу в терминологии, давайте разделим мухи и котлеты. Класс — это описание структуры данных и методов для работы с ними и не только. Объект — это конкретная сущность имеющая свой адрес в памяти.
Так вот, в данном случае, если таймеры размножить, то получим не очень оправданный расход памяти — зачем, например в каждой сущности хранить частоту и длину тика? Опять-таки, каждое обращение — это апи-вызов. Лучше сделать отдельно таймер, который опрашивает АПИ, и отдельно логические таймеры, которые будут работать на базе уже полученных на текущем кадре данных.
Если же хочется, чтобы был гарантированно один таймер, то есть смысл объявить все переменные и функции статическими.
А если хочется потратить ещё 4 байта и добавить лишних тактов из-за непрямых вызовов — то сделать «синглтон».
Так вот, в данном случае, если таймеры размножить, то получим не очень оправданный расход памяти — зачем, например в каждой сущности хранить частоту и длину тика? Опять-таки, каждое обращение — это апи-вызов. Лучше сделать отдельно таймер, который опрашивает АПИ, и отдельно логические таймеры, которые будут работать на базе уже полученных на текущем кадре данных.
Если же хочется, чтобы был гарантированно один таймер, то есть смысл объявить все переменные и функции статическими.
А если хочется потратить ещё 4 байта и добавить лишних тактов из-за непрямых вызовов — то сделать «синглтон».