Правильно ли я понял:
у вас есть класс А, который содержит N параметров.
есть класс Construct_1, который делает что то на основе M параметров, где M - подмножество N
есть класс Construct_2, который делает что то, похожее на действия Construct_1 на основе M` параметров, где M` - подмножество N.
Вы хотите чтобы C_1 и C_2 были объединены одним интерфейсом. Т.е. кто то извне создает С_1 или С_2 в зависимости от условий, передает его например в A, и A вызывает общий метод, давая туда нужные данные, но не зная что перед ним - Construct_1 или Construct_2?