Saya telah membaca " Kode Bersih " oleh Robert Martin untuk mudah-mudahan, menjadi programmer yang lebih baik. Meskipun sejauh ini tidak ada yang benar-benar melanggar, itu membuat saya berpikir berbeda tentang cara saya mendesain aplikasi dan menulis kode.
Ada satu bagian dari buku yang saya tidak hanya tidak setuju dengan, tetapi tidak masuk akal bagi saya, khususnya dalam hal konvensi penamaan antarmuka. Ini teksnya, diambil langsung dari buku. Saya telah berani aspek ini saya merasa membingungkan dan ingin klarifikasi.
Saya lebih suka membiarkan antarmuka tanpa hiasan. I yang sebelumnya, yang sangat umum dalam gumpalan warisan hari ini, adalah gangguan terbaik dan terlalu banyak informasi paling buruk. Saya tidak ingin pengguna saya tahu bahwa saya memberi mereka antarmuka .
Mungkin itu karena saya hanya seorang siswa, atau mungkin karena saya belum pernah melakukan pemrograman berbasis profesional atau tim tapi saya ingin pengguna tahu itu adalah antarmuka. Ada perbedaan besar antara mengimplementasikan antarmuka dan memperluas kelas.
Jadi, pertanyaan saya bermuara pada, "Mengapa kita harus menyembunyikan fakta bahwa beberapa bagian dari kode mengharapkan antarmuka?"
Sunting
Menanggapi jawaban:
Jika tipe Anda adalah antarmuka atau kelas adalah bisnis Anda, bukan bisnis seseorang yang menggunakan kode Anda. Jadi Anda tidak boleh membocorkan detail kode Anda dalam kode pihak ketiga ini.
Mengapa saya tidak "membocorkan" detail apakah jenis yang diberikan adalah antarmuka atau kelas ke kode pihak ketiga? Bukankah penting bagi pengembang pihak ketiga menggunakan kode saya untuk mengetahui apakah mereka akan mengimplementasikan antarmuka atau memperluas kelas? Apakah perbedaannya tidak sepenting yang saya pikirkan?
to know whether they will be implementing an interface or extending a class
: ya, tetapi sebagian besar pengguna kode Anda akan menyebutnya, tidak menerapkan atau memperluasnya, dan mereka benar-benar tidak peduli yang mana.