Katakanlah saya memiliki fungsi IsAdmin
yang memeriksa apakah pengguna adalah admin. Misalkan saja pengecekan admin dilakukan dengan mencocokkan id pengguna, nama, dan kata sandi dengan semacam aturan (tidak penting).
Di kepala saya ada dua kemungkinan tanda tangan fungsi untuk ini:
public bool IsAdmin(User user);
public bool IsAdmin(int id, string name, string password);
Saya paling sering menggunakan jenis tanda tangan kedua, berpikir bahwa:
- Fungsi tanda tangan memberi pembaca lebih banyak info
- Logika yang terkandung di dalam fungsi tidak harus tahu tentang
User
kelas - Biasanya menghasilkan kode sedikit lebih sedikit di dalam fungsi
Namun saya terkadang mempertanyakan pendekatan ini, dan juga menyadari bahwa pada titik tertentu akan menjadi sulit. Jika misalnya fungsi akan memetakan antara sepuluh bidang objek yang berbeda ke dalam bool yang dihasilkan, saya jelas akan mengirim seluruh objek. Tetapi terlepas dari contoh nyata seperti itu saya tidak bisa melihat alasan untuk meneruskan objek yang sebenarnya.
Saya akan menghargai argumen apa pun untuk gaya apa pun, serta pengamatan umum apa pun yang Anda tawarkan.
Saya memprogram dalam gaya berorientasi objek dan fungsional, jadi pertanyaannya harus dilihat mengenai setiap dan semua idiom.