デスクトップアプリケーションなので、UIベースのアプリケーションだと思います。したがって、MVCアーキテクチャがここで最も適しています。また、モデルへの非同期アクセスにはJavaBeanを使用する必要があると思います。
まず、必要なすべての定義を使用してモデルを定義します。
言わせて
class person
{
public PropertyChangeSupport propertyChange = new PropertyChangeSupport(this);
private String firstName;
private String middleName;
private String lastName;
private int gender;
private Integer age;
.
.
set Fname(String firstName)
{
propertyChangeSupport.firePropertyChange("firstName",this.firstName,this.firstName = firstName);
}
.
.
.
public void setPropertyChange(PropertyChangeSupport propertyChange) {
this.propertyChange = propertyChange;
}
public PropertyChangeSupport getPropertyChange() {
return propertyChange;
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChange.removePropertyChangeListener(listener);
}
}
ここで、シングルトンパターンとなるモデルプロバイダーが必要です。
class PersonMOdelProvider
{
private static List<Person> lst ;
private static PersonMOdelProvider content;
private PersonMOdelProvider()
{
// Get data from data base layer.
lst = new ArrayList<Person>();
//load the list from database
}
public static PersonModelProvider getInstance()
{
if (content!=null) return content;
content = new PersonMOdelProvider();
return content;
}
.
.
.
set ... get methods for binding db with model.
}
ここで、UIの部分では、最初にモデルプロバイダーのインスタンスを取得し、モデルプロバイダーを介してそれ以降のすべての対話を実行する必要があります。