Я неспециалист с точки зрения дизайна программного обеспечения. Я столкнулся с «проблемой», которая, возможно, решается какой-то известной техникой/идиомой/шаблоном, о которой мне бы хотелось рассказать.Разработка программного обеспечения: Слишком много классов?
У меня есть абстрактный базовый класс, в основном определяющий одну чистую виртуальную функцию-член и немного больше. Тогда у меня есть несколько классов, происходящих из этого, и переопределение упомянутой виртуальной функции. У меня сейчас полдюжины таких классов, и число растет. Классы имеют только несколько членов данных (очень немногие, например, пара удвоений или что плюс указатель на функцию), и они отличаются главным образом тем, как они выполняют очень короткие вычисления. Интересно, указывает ли это на плохой дизайн и лучше разбирается каким-то другим способом.
При необходимости, может кто-то указать мне на соответствующий шаблон дизайна или идиому, о которой я должен знать. Благодарю.
EDIT
Чтобы прояснить вещи, абстрактный базовый класс не имеет каких-либо элементов данных. Не все производные классы имеют члены данных. То, что я делаю, это преобразование координат для интегралов как классов. Для данного преобразования требуется только пара параметров, а иногда и пользовательская функция.
Если код не дублируется, то вы на правильном пути. – Dialecticus
Имеет ли абстрактный базовый класс какие-либо элементы данных? –
Согласитесь с @Dialecticus, но указатель функции поднимает бровь. Почему указатель функции? Не можете ли вы сконструировать это в специфику данного подкласса? В стороне, если вы еще этого не сделали, посмотрите [std :: function'] (http://en.cppreference.com/w/cpp/utility/functional/function). Это может упростить использование указателя функции. – user4581301