Есть ли способ реализовать шаблон объекта пересылки в Java без шаблонного кода? - PullRequest
1 голос
/ 26 октября 2011

Поскольку инкапсуляция считается лучше, чем наследование (согласно Effective Java и другим источникам), существует схема пересылки объекта.(Я считаю, что шаблон «Декоратор» является синонимом этого, но, пожалуйста, не кричите на меня, если я ошибаюсь!)

По сути, вы пишете такой код:Так что много шаблонного кода.И мы все знаем, что «Не повторяйся» идеально.Есть ли хороший способ решения этой проблемы, который не включает в себя шаблон кода?

Ответы [ 2 ]

4 голосов
/ 26 октября 2011

TL; DR: нет, нетривиально. Это Java.

Большинство IDE могут сделать это автоматически. Я прибег к "базовым классам шаблонов", чтобы не загрязнять код, который делает реальную работу, когда я делаю много.

Вы можете использовать Ломбок @Delegate (документы) , хотя.

2 голосов
/ 27 октября 2011

С интерфейсами вы можете использовать динамический прокси-класс или с конкретными классами вы можете сделать некоторую хитрость, например, динамическую запись байт-кода для нового подкласса с cglib (или аналогично ASM )

...