Правильный способ реализовать то, что раньше было миксином в Java?

Я являюсь частью проекта, который объединяет код, написанный на разных языках в разное время, в одно приложение.

Моя часть идет от C ++ до Java. Прочитав комментарии к этому вопросу: https://stackoverflow.com/questions/587458/implement-mixin-in-java Я пришел к выводу, что миксины в Java на самом деле невозможны без схем генерации кода, и они не будут хорошо приняты в команде, над которой я работаю.

Как правильно реализовать то, что раньше было миксином в C ++ с использованием ванильной Java? В частности, раньше была конструкция типа MVC, в которой некоторые контроллеры имели логику смешивания и сопоставления, в которой использовалось состояние контроллера. Контроллеры наследуют Mixins, чтобы получить эту функциональность в различных перестановках, так что линейный путь наследования не имеет большого смысла.

Лучшее, о чем я могу подумать сейчас, — это набор классов служебного типа, которые содержат логику, которая была в Mixins, и контроллеры вызывают их функциональность, передавая себя в качестве ссылок, чтобы служебные классы могли получить доступ к своему состоянию. , ИМХО это действительно воняет, и я надеюсь, что есть лучший способ.

Итак, как правильно спроектировать это на Java?

1

Решение

Если вам действительно нужны миксины, вы можете использовать такой язык, как Scala, который поддерживает их (и работает на JVM с кодом Java)

Иначе я бы сочинил композицию, которая тоже не красивая, а простая.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]