это больше вопрос дизайна.Предположим, у вас есть много bean-компонентов A, B, C .... Затем у вас есть класс, который создает, скажем, таблицы из bean-компонентов.Вам нужно что-то, что сообщает этому классу, какие свойства этих bean-компонентов отображать, какие имена дают столбцам и другие свойства рендеринга.Я не хочу связывать это в классе для каждого класса bean-компонентов, поэтому я подумывал о том, чтобы дать bean-компонентам общий интерфейс, такой как TableAdapterProvider, который будет предлагать класс, который дает все инструкции для класса рендеринга.Проблема в том, что я не могу сделать метод интерфейса статическим в Java.И это кажется не очень чистым по ряду причин ... например, чтобы создать пустую таблицу, я должен выделить bean-компонент и затем вызвать метод интерфейса TableAdapterProvider для получения класса «рендеринга».
Я думал о создании фабрики наподобие TableAdapterFactory(Class beanClass)
, которая бы возвращала правильный TableAdapter для каждого класса бинов, не вызывая его.В любом случае я должен обновить эту фабрику для каждого создаваемого бина.
Другое решение может заключаться в использовании специальных соглашений об именах, например, если имя компонента - Apple, тогда AppleTableRenderer будет средством визуализации.Я могу сканировать пакет в поисках этого, когда запускается TableRenderer, поэтому ассоциации выполняются автоматически.
Знаете ли вы лучший образец?Что вы думаете о моих подходах?
На будущее, есть ли хорошая книга с такими рецептами для использования в веб-приложениях?