Лично я предпочел бы видеть код в оригинальной форме того, что вы описали. Было бы намного проще с первого взгляда точно сказать, что делает код, и проще в обслуживании, потому что, если вы когда-нибудь захотите изменить макет панели, вам не придется искать правильный метод или создавать совершенно новый способ добиться того, что вы хотите. Кроме того, по мере добавления дополнительных атрибутов к вашим компонентам число ваших статических методов будет расти экспоненциально.
В мире шаблонов проектирования я вижу шаблон Builder, применяемый к подобным случаям, который, по-видимому, и является тем, к чему стремится Java API.
Базовое краткое изложение:
- Создание простого предмета, мало или совсем без украшения
- Добавить объекты / атрибуты / и т. Д. чтобы это выглядело / делало что хочешь
ПРИМЕЧАНИЕ. Прелесть в том, что вы не знаете, как будет выглядеть конечный результат, пока не закончите, что дает вам полный диапазон гибкости.
Кроме того, я только что прочитал ответ, в котором обсуждалось расширение JPanel. С точки зрения дизайна, не забывайте пытаться отдавать предпочтение отношениям «есть», а не «есть», когда это возможно. В противном случае вы получите очень плоскую структуру классов, которая выглядит идентично вашим статическим методам, и вы бы столкнулись с теми же ошибками, что и я, описанные выше.
Теперь, с учетом сказанного, я написал и использовал большую коллекцию того, что я называю «Службы», классы, которые не имеют состояния и имеют только статические методы (как вы описали), и они спасли меня от написания (и что еще более важно, дублирование) много моих основных процедур. Они могут оказаться очень полезными, если их использовать должным образом, но я склонен использовать их только для самых простых (и распространенных) подпрограмм, таких как форматирование текста, копирование массивов, преобразование массивов с плавающей точкой в двойные массивы (в C ++) или что-либо еще, что вы ожидаете найти в стандартной библиотеке.
Это действительно зависит от того, насколько «статичны» ваши статические методы. Если вы не видите, что их нужно так часто обслуживать или обновлять, то, вероятно, вам не помешает привязать их к тому, что вы описали. Тем не менее, если в будущем есть какой-либо шанс на повторный факторинг, я думаю, что вы должны предпочесть оставить его как можно более гибким, что, к сожалению, означает каждый раз делать вызовы API вручную.
Удачи!