Я хочу создать проект, который построен для обработки видео, и я планирую использовать openCV. Я хочу добавить класс Utils, который содержит только статические функции, и его целью является включение различных функций, которые зависят только от его параметров и выполняют различные этапы обработки, например Utils::processFramHsvSpace(cv::Mat inputFrame)
, который обрабатывает cv::Mat
и возвращает некоторые функции, извлеченные из пространства HSV.OOP - есть ли недостатки в использовании статических методов?
Есть ли недостатки для такого подхода в плане использования памяти? Вместо этого следует добавить метод к основному классу и использовать переменные-члены класса?
Почему бы не создать их в пространстве имен? – Caesar
Почему не глобальные функции? Никаких недостатков в использовании памяти. Но вы используете классы для чего-то, для чего они не предназначены. Глобальные функции (либо в пространстве имен, либо нет) лучше. – john
Если у вас есть только функции и нет состояния и нет четких обязанностей, тип которых должен обрабатывать, класс не лучший дизайн ... также это soooo Java. ;) Сделать их свободными функциями в именованном пространстве имен. – thokra