Rumah > Java > javaTutorial > Di manakah ActionListeners Perlu Diletakkan dalam Seni Bina MVC Java?

Di manakah ActionListeners Perlu Diletakkan dalam Seni Bina MVC Java?

Susan Sarandon
Lepaskan: 2024-11-30 18:19:15
asal
581 orang telah melayarinya

Where Should ActionListeners Be Placed in a Java MVC Architecture?

MVC Architecture in Java and the Placement of ActionListeners

Dalam seni bina MVC (Model-View-Controller), penempatan ActionListeners harus mengikut garis panduan khusus untuk mengekalkan pengasingan kebimbangan.

Penempatan ActionListeners

Secara teknikal, ActionListeners tergolong dalam lapisan Pengawal, kerana mereka mengendalikan input pengguna dan berinteraksi dengan Model. Walau bagaimanapun, Swing, rangka kerja GUI yang digunakan secara meluas di Jawa, tidak mematuhi corak MVC dengan ketat. Untuk kebolehbacaan dan kebolehselenggaraan, adalah perkara biasa untuk meletakkan ActionListeners dalam pakej berasingan di luar kelas View atau Controller, tetapi mereka masih harus diuruskan oleh Pengawal.

Komunikasi Antara Pengawal dan ActionListeners

Untuk melaksanakan fungsi Pengawal dari dalam ActionListeners yang bukan Pengawal subkelas:

  1. Buat antara muka atau kelas abstrak yang mentakrifkan kaedah panggil balik yang dijangkakan oleh Pengawal.
  2. Laksanakan antara muka ini dalam kelas yang mengandungi ActionListener.
  3. Pass contoh antara muka yang dilaksanakan kepada Pengawal pada permulaan.
  4. Pengawal kemudiannya boleh melanggan antara muka dan memanggil kaedah panggil balik apabila diperlukan.

Contoh:

// Interface for the View to notify the Controller of events
public interface LoginViewListener {
    public void onLoginRequested();
    public void onLoginCancelled();
}

// Class containing the ActionListener
public class LoginPane extends JPanel implements LoginView {
    private LoginViewListener listener;
    // ...

    public void setLoginViewListener(LoginViewListener listener) {
        this.listener = listener;
    }
    // ...

    @Override
    public void onLoginRequested() {
        if (listener != null) {
            listener.onLoginRequested();
        }
    }
}

// Controller class
public class LoginController implements LoginViewListener {
    private LoginPane loginPane;
    // ...

    public LoginController() {
        loginPane = new LoginPane();
        loginPane.setLoginViewListener(this);
    }

    @Override
    public void onLoginRequested() {
        // Perform login operations
        // ...
    }
    // ...
}
Salin selepas log masuk

Pendekatan ini membolehkan reka bentuk yang dipisahkan dan fleksibel di mana Paparan dan Pengawal berinteraksi melalui antara muka, menggalakkan kebolehselenggaraan dan kebolehgunaan semula kod.

Atas ialah kandungan terperinci Di manakah ActionListeners Perlu Diletakkan dalam Seni Bina MVC Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan