Saya membaca Kode Bersih oleh Paman Bob. Karena saya bukan penutur asli bahasa Inggris, saya tidak dapat memahami pernyataan berikut:
Kelas dan objek harus memiliki nomina atau frase nomina nama-nama seperti
Customer
,WikiPage
,Account
, danAddressParser
. Kata Hindari sepertiManager
,Processor
,Data
, atauInfo
dalam nama kelas. Nama kelas tidak harus berupa kata kerja.
Yang saya tahu, tidak ada Manager
, Processor
, Data
, dan Info
adalah kata kerja, bukan? Apa poin sebenarnya yang ingin dia tekankan?
coding-style
terminology
code-quality
naming
mmdemirbas
sumber
sumber
Jawaban:
Tiga poin itu terpisah:
Nama kelas harus berupa kata benda atau frasa kata benda . Ini berarti bahwa nama kelas haruslah sesuatu yang akan menjadi subjek dari kata kerja. Dalam kasus desain berorientasi objek, metode akan menjadi kata kerja yang terjadi pada hal yang merupakan representasi kelas.
Beberapa kata harus dihindari.
Manager
menunjukkan kemungkinan kelas dewa .Info
danData
dapat menunjukkan wadah data dummy. Kata-kata seperti ini mungkin menunjukkan pemodelan ruang masalah yang buruk.Kata kerja tidak boleh berupa nama kelas. Lihat poin pertama - model kelas hal, metode model tindakan.
sumber
Dia mencoba menggambar perbedaan antara benda (kata benda) dan tindakan (kata kerja). Dalam desain berorientasi objek konvensional, kami menganggap kelas sebagai hal, dan metode mereka sebagai tindakan yang dapat dilakukan oleh hal-hal tersebut. Untuk mengelola adalah untuk mengurus atau mengkoordinasikan, sedangkan manajer adalah orang atau hal yang mengelola.
Buku-buku pengantar biasanya memunculkan ini ke istilah paling sederhana dan paling jelas mungkin seperti kelas bernama Dog , dengan metode Bark and Bite . Di kelas dunia nyata, perbedaannya sering sedikit lebih halus, tetapi masih ada. Saya percaya maksud Paman Bob adalah, bagaimanapun, adalah bahwa sementara manajer adalah kata benda, tetapi itu menaruh banyak perhatian pada apa yang manajer lakukan, dan bukan apa yang dilakukan-itu terlalu samar kata untuk menggambarkan secara tepat apa itu dikelola atau bagaimana.
sumber
Account
adalah sebuah objek,balance
adalah bidang dantransfer
metode. Tetapi desain yang benar adalah:Transfer
adalah objek,account
bidang danbalance
metode. Begitulah sistem perbankan benar - benar diterapkan dan bagaimana perbankan sebenarnya bekerja sebelum komputer.