Perbedaan antara Handler, Manajer dan Pengendali

21

Apakah ada perbedaan antara penamaan kelas "Handler", "Manager" atau "Controller"? IE: PurchaseManager, PurchaseHandler, PurchaseController.

Apakah kecukupan ini menyampaikan makna yang sama atau adakah perbedaan yang jelas di antara keduanya?

Jika tidak ada jawaban bahasa-agnostik, anggap Java sebagai bahasa.

hpique
sumber
1
Lebih banyak konteks akan membantu di sini. Banyak (banyak!) Kerangka kerja memiliki definisi perbedaan yang cukup jelas. Namun, tidak ada definisi universal di balik kata-kata ini. Dalam konteks apa Anda bekerja? Kerangka apa yang Anda gunakan? Bahasa apa yang Anda gunakan?
S.Lott
Bahasa yang diklarifikasi.
hpique

Jawaban:

15

Biasanya 'Controller' adalah antarmuka antara komponen antarmuka pengguna dan model (mis. Pembelian). Kontroler harus kelas tipis, melakukan sedikit lebih dari memetakan peristiwa antarmuka pengguna untuk memodelkan fungsi.

'Manajer' adalah bau kode. Pembelian harus dikelola sendiri, atau dapat dikelola oleh kelas pemilik, seperti Vendor atau Pembeli.

'Handler' biasanya merupakan fungsi tunggal yang dibungkus dengan suatu objek. Ini diperlukan saat pemrograman dalam bahasa lawas tanpa fungsi kelas satu.

kevin cline
sumber
Sementara saya juga tidak suka konsep 'Manajer', saya pikir alasan untuk tidak menangani logika bisnisnya sendiri adalah bahwa programmer ingin memisahkan kacang / pojo / dto dari operasi bisnis yang kompleks.
Sridhar Sarnobat
1
Meskipun saya setuju dengan Anda tentang Manajer dari sudut pandang agnostik bahasa, saya ingin menambahkan bahwa Manajer dapat menjadi istilah yang tepat untuk digunakan dalam beberapa kasus. Sebagai contoh, boleh saja berbicara tentang manajer dari sudut pandang protokol misalnya. Untuk SNMP Anda memiliki Manajer yang "mengelola" sekumpulan Agen. Ini adalah istilah yang tepat untuk digunakan dalam kasus ini. Namun ini membenarkan penggunaan "Manajer" secara spontan.
patrik
7

Walaupun jawaban saya tidak didasarkan pada definisi, saya melihat sesuatu yang diberi label sebagai "Pengendali" sebagai implementasi eksklusif versus "Handler" sebagai inklusif . Saya berharap untuk melihat hanya satu keberadaan "PurchaseController" dan beberapa versi yang mungkin dari "PurchaseHandler".

Saya pikir nama umum lain untuk Controller adalah "Broker" - yang sedikit mengubah perspektif tentang itu.

David Savage
sumber
Terima kasih atas definisi ini. Anda telah memasukkan banyak pengetahuan dalam beberapa baris.
acearch