(NEW) Антипаттерн "Беременная лошадь" – как правильно распределить обязанности между классами в Java

Давайте на примере кода студента разберем очень популярный среди новичков антипаттерн "Беременная лошадь". И посмотрим, как правильно распределить обязанности между классами.