Мне кажется, что вы переносите проблему слишком большого количества параметров из класса A
в класс StyleSheetA
.
Чтобы проиллюстрировать мою мысль, подумайте над вопросом: как бы вы описали StyleSheetA
? Вероятно, в любом случае, используя конструктор, который принимает все эти параметры. Единственное преимущество, которое может дать этот дизайн, - это если у вас есть один и тот же набор значений параметров, инкапсулированных объектом StyleSheetA
, который вы будете повторно использовать среди нескольких экземпляров A
. Если это так, имейте в виду, что, хотя у вас будут разные экземпляры A
, они будут иметь одни и те же параметры, поэтому это не лучший выбор.
Что я мог бы порекомендовать вам, так это попытаться провести рефакторинг самого класса A
. Попробуйте разбить его на более мелкие классы. Если необходимо, попробуйте создать подклассы, чтобы избежать условных переходов и т. Д.
Теперь я не знаю, как выглядит ваш класс A
, но, возможно, если вы это сделаете, у вас будет несколько классов, каждый со своим набором параметров. И если какой-либо из параметров является дискриминатором (то есть он определяет класс «тип»), вы сможете от него избавиться, просто используя подклассы и полагаясь на встроенную систему типов, чтобы сделать это вместо этого.