Ну и я свои две копейки добавлю: Я использую классы. Плюсы: часть функций можно делать public, а вспомогательные функции можно делать protected или private. Если понадобится, можно класс легко переделать в singelton или в обычный класс. Я кстати не согласен с тем, что это является использованием классов не по назначению: классы задуманы как структуры для объеденения данных и функций
> Плюсы: часть функций можно делать public, а вспомогательные функции можно делать protected или private.
protected - это если ты собираешься наследовать и переопределять. Всё остальное нормально делается с помощью модулей.
> Если понадобится, можно класс легко переделать в singelton
Объясните мне, непутёвому, нахрена нужен синглетон? Только не нервничайте сильно :) Что такое синглетон я знаю - мне непонятно нахрена он нужен в виде класса.
> или в обычный класс.
Видимо, что-то не то в консерватории, если вот так, с бухты барахты, вдруг понадобилось слепить класс.
> классы задуманы как структуры для объеденения данных и функций
Угу. Только объединение это далеко не всегда нужно. Лучше было б отделять мух от котлет.
Угу. IMHO класс олицетворяет некую СУЩНОСТЬ. Общности ф-ций по принципу "делают что-то из одной области" не достаточно, чтобы объединить их в класс. Обязательно должен быть объект (экзэмпляр класса), который реализует этот набор функций. Если такой объект представить невозможно, это неправильное использование ООП.