Groovy основы - поведение во время выполнения и инкапсуляция

1

Я читал "Groovy in Action" Дьерка Кенига. Дирк утверждает, что это задачи Groovy, которые Java не может выполнять:

- Changing the runtime behavior of objects after they have been created.

Я думал, что Java тоже имеет динамическую отправку. Может ли кто-нибудь объяснить, как это отличается от Java?

- Encapsulating logic in objects in a natural way. 

Как это отличается от Java? Очень ценю ваше время, чтобы ответить, если у вас есть четкий ответ.

  • 3
    Вы можете создать объект и затем связать с ним новые методы во время выполнения. @see См. Groovy Metaclass
Теги:
groovy

1 ответ

3

Для первой задачи:

Изменение времени выполнения объектов после их создания.

Я думаю, вы смешиваете эту функцию Groovy с такими понятиями, как полиморфизм в Java. Эта функция в Groovy позволяет, например, заменить метод для существующего объекта во время выполнения, тогда как динамическая диспетчеризация является основной особенностью JVM, которая позволяет среде выполнения отправлять правильный вызов метода на основе фактического типа объекта.

Для второй задачи:

Инкапсулирование логики в объектах естественным образом.

Я думаю, что это касается закрытий, которые позволяют хранить ссылки на блоки кода или методы, которые могут быть повторно использованы. Эта функция не существует в Java.

  • 0
    Большое спасибо, это имеет смысл. Я думал о полиморфизме в Java. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню