Я знаю, что было бы лучше разделить класс на части, но я использую его в сочетании с коммерческим кодом, который я не могу изменить ...
Возможно, мне не хватает дополнительной информации о вашей конкретной ситуации, но независимо от того, какой сторонний код вы используете, вы должны иметь возможность делать что угодно с вашим написанным кодом, и это звучит так, как будто вы много писали.
Вы признали, что ваш класс слишком большой, поэтому следующий шаг - разбить его на отдельные, более сплоченные классы. Попытка создать другие файлы / функции, которые просто изменят внутреннее состояние вашего одного класса, который уже велик, сделает код еще больше, и вы добавите его еще больше, чем сейчас.
Если сторонняя библиотека должна работать с одним написанным вами классом, взгляните на шаблон проектирования Facade. Вы можете легко получить внешний вид сложного класса, но внутри он просто делегирует работу любому числу более специализированных классов.
Если вы хотите, чтобы один класс имел доступ к сторонней библиотеке, вы можете сделать это тоже. Взгляните на что-нибудь, например шаблон проектирования адаптера.
Еще один совет, который я могу предложить, - подобрать эту книгу по рефакторингу . Он покажет вам, как вы можете взять любой код, который выглядит слишком сложным, и методично применить шаги, чтобы сделать его намного более читабельным и обслуживаемым. Например, посмотрите на ваши элементы данных, выглядят ли какие-либо из них как принадлежащие к одной группе (то есть к ним часто обращаются / изменяют вместе)? Если да, подумайте о том, чтобы переместить их в их собственный класс, предоставляющий минимальный интерфейс для получения / настройки только того, что нужно вашему основному классу.
Этот пост не отвечает на ваш конкретный вопрос, но делает шаг назад, может быть, есть гораздо лучшее решение, чем нарушение правил ОО и хороших принципов проектирования, просто из-за некоторых ограничений, которых на самом деле не может быть.