Prinsip Tanggung Jawab Tunggal menyatakan bahwa "kelas harus memiliki satu alasan perubahan".
Dalam pola MVC, tugas Pengontrol adalah memediasi antara View dan Model. Ini menawarkan antarmuka untuk tampilan untuk melaporkan tindakan yang dibuat oleh pengguna pada GUI (misalnya memungkinkan tampilan untuk memanggil controller.specificButtonPressed()
), dan dapat memanggil metode yang sesuai pada Model untuk memanipulasi data itu atau menjalankan operasi itu (misalnya model.doSomething()
) .
Ini berarti:
- Pengontrol perlu mengetahui tentang GUI, untuk menawarkan tampilan antarmuka yang sesuai untuk melaporkan tindakan pengguna.
- Ini juga perlu tahu tentang logika dalam Model, agar dapat memanggil metode yang sesuai pada Model.
Itu berarti ada dua alasan untuk berubah : perubahan dalam GUI, dan perubahan dalam logika bisnis.
Jika GUI berubah, misalnya tombol baru ditambahkan, Pengontrol mungkin perlu menambahkan metode baru untuk memungkinkan Tampilan melaporkan pengguna yang menekan tombol ini.
Dan jika logika bisnis dalam Model berubah, Controller mungkin harus berubah untuk memanggil metode yang benar pada Model.
Oleh karena itu, Pengendali memiliki dua kemungkinan alasan untuk berubah . Apakah itu merusak SRP?