Saya akan mengutip beberapa bagian dari Pola Implementasi oleh Kent Beck:
Nama Superclass Sederhana
"[...] Nama harus pendek dan kuat. Namun, untuk membuat nama yang tepat terkadang memerlukan beberapa kata. Jalan keluar dari dilema ini adalah memilih metafora yang kuat untuk komputasi. Dengan metafora dalam pikiran, bahkan satu kata membawa serta jaringan asosiasi, koneksi, dan implikasi yang kaya. Misalnya, dalam kerangka gambar HotDraw, nama depan saya untuk objek dalam gambar adalah
DrawingObject . Ward Cunningham datang dengan metafora tipografi: gambar itu seperti halaman yang dicetak dan ditata. Item grafis pada halaman adalah gambar, sehingga kelasnya menjadi Figur . Dalam konteks metafora, Figur
secara bersamaan lebih pendek, lebih kaya, dan lebih tepat daripada DrawingObject . "
Nama Subclass Berkualifikasi
"Nama-nama subclass memiliki dua pekerjaan. Mereka perlu mengkomunikasikan seperti apa kelas mereka dan bagaimana mereka berbeda. [...] Tidak seperti nama-nama di akar hierarki, nama subclass tidak digunakan hampir sesering dalam percakapan, sehingga mereka bisa ekspresif dengan biaya yang ringkas. [...]
Beri nama sederhananya pada subclass yang berfungsi sebagai akar hierarki. Misalnya, HotDraw memiliki kelas Handle yang menampilkan operasi pengeditan gambar ketika gambar dipilih. Ini disebut, sederhana, Menangani
meskipun memperluas Gambar . Ada banyak jenis pegangan dan mereka paling tepat memiliki nama seperti
StretchyHandle dan TransparencyHandle . Karena Handle adalah root dari hierarkinya sendiri, ia membutuhkan nama superclass sederhana lebih dari sekedar nama subclass yang memenuhi syarat.
Kerutan lain dalam penamaan subclass adalah hierarki multi-level. [...] Daripada membabi buta menambahkan pengubah ke superclass langsung, pikirkan tentang nama dari sudut pandang pembaca. Kelas apa yang dia butuhkan untuk mengetahui kelas ini? Gunakan superclass itu sebagai dasar untuk nama subclass. "
Antarmuka
Dua gaya antarmuka penamaan bergantung pada bagaimana Anda memikirkan antarmuka. Antarmuka sebagai kelas tanpa implementasi harus dinamai seolah-olah kelas ( Nama Superclass Sederhana , Nama Subclass Memenuhi Syarat ). Satu masalah dengan gaya penamaan ini adalah bahwa nama-nama baik digunakan sebelum Anda mendapatkan kelas penamaan. Antarmuka bernama File membutuhkan kelas implementasi yang disebut sesuatu seperti
ActualFile , ConcreteFile , atau (yuck!) FileImpl(sufiks dan singkatan). Secara umum, mengkomunikasikan apakah seseorang berurusan dengan objek konkret atau abstrak itu penting, apakah objek abstrak diimplementasikan sebagai antarmuka atau superclass kurang penting. Menunda perbedaan antara antarmuka dan superkelas> didukung dengan baik oleh gaya penamaan ini, membuat Anda bebas untuk berubah pikiran nanti jika> itu diperlukan.
Terkadang, menamai kelas konkret lebih penting untuk komunikasi daripada menyembunyikan penggunaan antarmuka. Dalam hal ini, awalan nama antarmuka dengan “I”. Jika antarmuka disebut IFile , kelas dapat disebut File .
Untuk pembahasan lebih detail, beli bukunya! Itu sangat berharga! :)