Secara umum ada baiknya untuk menghindari kata-kata seperti "pegangan" atau "proses" sebagai bagian dari nama rutin dan nama kelas, kecuali jika Anda berurusan dengan (misalnya) penanganan file atau (misalnya) proses unix. Namun kelas abstrak sering tidak benar-benar tahu apa yang akan mereka lakukan dengan sesuatu selain, katakanlah, proseskan. Dalam situasi saya saat ini, saya memiliki "EmailProcessor" yang masuk ke kotak masuk pengguna dan memproses pesan darinya. Tidak terlalu jelas bagi saya bagaimana memberikan nama yang lebih tepat, meskipun saya perhatikan masalah gaya berikut muncul:
- lebih baik memperlakukan kelas turunan sebagai klien dan menamai kelas dasar dengan bagian dari fungsi yang diterapkannya? Memberinya lebih berarti tetapi akan melanggar is-a. Misalnya EmailAcquirer akan menjadi nama yang masuk akal karena mengakuisisi untuk kelas turunan, tetapi kelas turunan tidak akan memperoleh untuk siapa pun.
- Atau hanya nama yang benar-benar kabur karena siapa yang tahu apa yang akan dilakukan kelas turunan. Namun "Prosesor" masih terlalu umum karena melakukan banyak operasi yang relevan, seperti masuk dan menggunakan IMAP.
Adakah jalan keluar dari dilema ini?
Masalah lebih jelas untuk metode abstrak, di mana Anda tidak bisa menjawab pertanyaan "apa yang dilakukan?" karena jawabannya hanyalah "apa pun yang diinginkan klien."