Вы спросили:
Это хорошо известный антипаттерн или хорошая идея организовать код?
Хорошая идея. Поскольку это проблема управления ресурсами, это действительно чистый и аккуратный способ организации третьего. init / cleanup библиотеки c в стиле party и один, который я видел и использовал раньше.
Хотя в вашем примере есть несколько тонких моментов.
Во-первых, наличие более одного в каждом классе явно нарушает принцип «один класс один».
Во-вторых, если нет веских причин не делать этого, init следует размещать за пределами main (например, непосредственно после определения класса).