Вы многому научитесь благодаря опыту.
Многие из самых продвинутых интерфейсов даже не похожи на Java. По крайней мере, верхний уровень распространяется на JComponent
, но кнопки не обязательно должны. Основное приложение может использовать собственные методы рисования для пользовательских видов или другие библиотеки для отображения трехмерных изображений. Когда у вас появится опыт использования множества различных компонентов и библиотек, вы начнете понимать, как все они могут объединиться в единое приложение.
Чтобы ответить на ваши вопросы объектной модели, определенно используйте отдельные классы от ваших объектов для их отображения. В конечном итоге один объект может использоваться различными частями вашего приложения, передаваться по сетям, отображаться на экранах, отправляться в виде текста или любым количеством разных вещей. Если вы попытаетесь поместить весь этот код в вашу объектную модель, это будет полный беспорядок.
Старайтесь строить методы здравого смысла на ваших объектах. Подумайте, какие методы, вопросы, свойства будут использоваться всеми частями вашего приложения при взаимодействии с этими объектами. Все, что является одноразовым и полезно только в одном месте, не помещайте это в классы основных объектов.
Кроме того, помните, вы всегда можете перенести функциональность. Использование хорошей IDE, такой как Eclipse, позволяет легко поднимать или опускать методы, свойства и другие части класса в суперкласс или подкласс. Если вы пишете некоторую функциональность, связанную с объектом, поместите его в модуль, который его использует. Когда вам понадобятся те же функции в другом модуле, перенесите их в вашу объектную модель, чтобы они могли быть общими. Это легко сделать с помощью правильных инструментов.