Вопрос очень расплывчатый. Ответ может быть как да, так и нет. Да, это плохо, если вы можете аккуратно разбить функциональность на несколько классов. Нет, это не плохо, если класс хорошо сфокусирован, и единственная причина, по которой вы получили 50 полей, состоит в том, что вам НУЖНО их все там.
У меня есть, например, класс из 900 строк с 70 полями, но это потому, что класс реализует немного искусственного интеллекта, а параметры, которые использует алгоритм AI, - это множество поведений и пороговых значений, которые необходимо определить там, чтобы что дочерние классы настраивают их. В моем случае, я бы сказал, что это неплохая архитектура, и мои 14 лет разработки программного обеспечения, похоже, согласны: -).
Конечно, если бы класс прошел более 1000 строк, я мог бы разбить его еще на 2: ИИ движения и ИИ атаки, но сейчас, в контексте моего проекта, действительно имеет смысл объединить его, потому что ИИ движения И атаки AI никогда не применяются независимо: они работают вместе, они должны быть в одном классе. Если бы мне когда-либо пришлось сделать объект, который ТОЛЬКО нуждается в движении ИИ, то я бы во что бы то ни стало разбил бы его на 2.