Вы говорите, что пришли из Какао, поэтому я предполагаю, что вы не говорите о MVC веб-фреймворка. Большинство веб-фреймворков, в которых говорится, что они используют MVC, на самом деле используют другой шаблон, называемый Front Controller, это немного другая история, чем в обычном MVC, потому что для этого достаточно много работы. Следовательно, все инфраструктуры MVC в веб-мире, первоначально MVC, были образцом для оконных приложений. Для этих приложений вы можете заставить MVC работать без фреймворка.
MVC - это шаблон, который может быть реализован на любом объектно-ориентированном языке. Там нет причин, почему вы не можете сделать это на Java. Единственная причина, по которой я могу подумать, почему люди называют MVC на Java подходом «подражателей», заключается в том, что библиотеки пользовательского интерфейса на Java, такие как Swing, на самом деле не требуют от вас использования MVC. Они просто дают вам инструменты для реализации View. Вам придется самостоятельно создавать классы контроллеров и моделей.
Дискуссии о том, что такое «настоящий MVC», обычно не всегда конструктивны. MVC - это шаблон, разработанный для smalltalk около 30 лет назад. Ни одна из реализаций, которые используются в настоящее время, больше не являются одинаковыми, многие реализации являются улучшениями. У вас есть разные варианты, называемые MVP, MVVM, Document-View и т. Д. И все они в некоторых случаях полезны. Важная вещь, которую следует отнять, - это хорошая идея отделить логику вашего пользовательского интерфейса от логики вашего приложения. Java может сделать это, как и большинство других языков. Люди, утверждающие иначе, вероятно, просто боятся смотреть за пределы языка, который им удобен.