0

ライブラリ管理システムを作成しようとしています。これで、境界がエンティティと直接やり取りできないことがわかりました。コントロール クラスは、境界とエンティティ クラスの間のメディエーターとして機能します。しかし、これらのクラスのオブジェクトはいつ作成されるのでしょうか?

まず、ログインについて説明します。境界は、Java Swing を使用して作成されたログイン フォームの UI になります。Controller クラスは、「validateUser()」という関数を含む PersonController になります。User という Entity クラスには、ユーザーの情報が含まれており、データベースにアクセスします。

ここで、UI を作成し、アクション リスナーを使用して UI からユーザー名とパスワードを取得し、ユーザー名とパスワードを使用して User エンティティを作成し、PersonController の validateUser() メソッドを呼び出して、ログインが正しいかどうかを確認する必要があります。ユーザーは有効です。

どうすればいいですか?これらのオブジェクトはどこで作成できますか?

これまでの私のコードは次のとおりです。

public class MainClass { // main class

    public static void main(String[] args) {
        PersonController loginSession = new PersonController(); //UNSURE
    }
}

public class PersonController {

    public PersonController(){
        LoginUI loginForm = new LoginUI(); //UNSURE
        loginForm.setVisible(true); //UNSURE
    }
    //implementation of the validateUser() function
}

public class User {
    private String username;
    private String password;
    private String role;
    private String name;
    private String phone;
    private String email;
    // get & set methods and accessing the database

}
public class LoginUI{
    //entire code for the UI in Java Swing created using Netbeans IDE
}
4

1 に答える 1

1

私の考えでは、プロセスは次のように機能するはずです...

UI、モデル、コントローラーの 3 つの要素があります。

UI はユーザーに選択肢を提示します...

モデルはUserオブジェクトを作成する必要があります (これが実際にどのように達成されるかを UI が認識していないため)。

コントローラーは、UI からのイベントに応答し、何をすべきかを決定します。

ユーザーがそこに値を入力し、「受け入れる」アクション (それが何であれ) をクリックすると、コントローラーはそのイベントをキャプチャし、UI からUserオブジェクトを要求します。UserUI は、ユーザーが入力した情報を受け取り、これらの値でオブジェクトを作成するようモデルに要求します。

コントローラーはオブジェクトを検証できUserます。

いつでも、プロセスのどの部分でも例外をスローすることを選択できます。UI は実際にユーザーに話しかけることができるシステムの唯一の部分であるため、これらのエラーを表示するのは UI の役割です。

基本的なワークフローは次のようになります...

モデル、フォーム、コントローラーを作成します。

モデルをフォームに追加し、フォームをコントローラーに追加します。

これらの異なる要素間の相互作用は、可能な限りインターフェイスを介して行う必要があります。他の部分についてもっと知る必要はありませんが、絶対に必要です-私見。

私の最初のステップは、何を達成したいのかを頭の中で明確にすることです。誰が何を担当しているかを把握し、それらを接続するために必要な橋を設計します

于 2013-03-20T23:36:52.400 に答える