У меня около 10 различных сущностей в моем приложении J2EE, которые сейчас используют одну и ту же реализацию. Все они наследуются от того же общего абстрактного класса, который был аннотирован как @MappedSuperclass, но этот класс не содержит ни одной реализации, которую я повторил во всех конкретных подклассах.
Если бы я мог, я бы поместил все различные поля и коллекции в этот абстрактный суперкласс и поэтому поместил там и методы реализации - все в одном месте вместо 10. Однако из-за ограничений JPA я не могу добавьте аннотации JPA к общим полям или методам доступа.
Хотя в любом случае я обычно отдаю предпочтение делегированию наследования реализации, из-за другого ограничения JPA, согласно которому нельзя иметь встроенную сущность с коллекцией, идея использования делегата также не будет работать.
Когда у меня было только 3-4 таких объекта и 2-3 метода, это было не страшно, но теперь у меня есть около 10 - и около 7-8 методов каждый ... и некоторые методы становятся действительно сложными. И наследование «вырезать-копировать-вставить», которое я использую, действительно отстой.
Есть еще какие-нибудь блестящие идеи?