Apa yang dimaksud Paman Bob dengan 'kata benda frase nama'?

14

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, dan AddressParser. Kata Hindari seperti Manager, Processor, Data, atau Infodalam nama kelas. Nama kelas tidak harus berupa kata kerja.

Yang saya tahu, tidak ada Manager, Processor, Data, dan Infoadalah kata kerja, bukan? Apa poin sebenarnya yang ingin dia tekankan?

mmdemirbas
sumber
mungkin Paman Bob mengadopsi pemikiran TENANG dalam memuji kebaikan sumber daya sebagai objek.
rwong

Jawaban:

21

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. Managermenunjukkan kemungkinan kelas dewa . Infodan Datadapat 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.

Thomas Owens
sumber
1
Kata-kata seperti ini mungkin menunjukkan pemodelan ruang masalah yang buruk. - Yah, orang akan berpikir, apakah ruang masalah dimodelkan dengan buruk atau tidak, terlepas dari nama yang dipilih. Nama yang bagus tidak membantu desain yang buruk; dan desain yang baik hanya sedikit terluka oleh nama yang buruk.
Ingo
Dan Anda bisa mengambil langkah ini lebih rendah ketika mempertimbangkan bagaimana Anda benar-benar membangun kelas Anda dan bagaimana ia berinteraksi dengan dunia luar - properti kelas umumnya akan menjadi kata benda, sedangkan metode kelas umumnya akan menjadi kata kerja
PeteH
Jika proyek Anda memiliki kelas yang Anda pertimbangkan untuk memanggil "Manajer" atau "Info" atau "Data" maka kemungkinan memiliki selusin kelas seperti itu, yang berarti Anda tidak akan menggunakan nama-nama ini. Anda akan memiliki Manajer Ini dan Manajer Itu dan Manajer Lain dan seterusnya.
gnasher729
Dia mengatakan kata kerja tidak boleh dalam nama kelas, tapi saya hanya membaca ulang Menambahkan Konteks yang Berarti, dan dalam contohnya di halaman 29, dia menamai kelas GuessStatisticMessage kelas. Sekarang saya bingung tentang aturan itu, karena saya menafsirkan penggunaannya Guess sebagai kata kerja, sebagai lawan dari kata benda. dictionary.com/browse/guess?s=t
Devin Gleason Lambert
2
@DevinGleasonLambert Tapi itu bukan Guess. Ini adalah Pesan Statistik Tebak. Pesan adalah kata benda. Guess Statistic hanya menggambarkan jenis pesannya - salah satunya pesan tentang perkiraan statistik.
Thomas Owens
7

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.

pswg
sumber
5
Sayangnya, pemikiran seperti ini dapat menyebabkan desain yang salah. Salah satu contoh utama adalah contoh pengantar klasik dari rekening bank. Di hampir semua buku teks OO, Accountadalah sebuah objek, balanceadalah bidang dan transfermetode. Tetapi desain yang benar adalah: Transferadalah objek, accountbidang dan balancemetode. Begitulah sistem perbankan benar - benar diterapkan dan bagaimana perbankan sebenarnya bekerja sebelum komputer.
Jörg W Mittag
@ JörgWMittag: bahwa kisah peringatan layak dikirim sebagai jawaban; bahwa ini adalah pedoman umum, dan dapat dalam kasus-kasus tertentu yang jarang menyebabkan dekomposisi yang buruk.
smci