Saya sadar bahwa ini adalah pertanyaan yang sangat mendasar, tetapi seorang pewawancara bertanya kepada saya dengan cara yang sangat licik dan saya tidak berdaya :(
Saya hanya tahu definisi material atau teoritis untuk sebuah antarmuka dan juga menerapkannya di banyak proyek yang saya kerjakan. Tapi saya benar-benar tidak mengerti mengapa dan bagaimana ini berguna.
Saya juga tidak mengerti satu hal pun dalam antarmuka. misalnya, kami menggunakan
conn.Dispose();
di blok akhirnya. Tapi saya tidak melihat bahwa kelas sedang mengimplementasikan atau mewarisi kelas IDisposable
interface ( SqlConnection
) yang saya maksud. Saya bertanya-tanya bagaimana saya bisa memanggil nama metode. Juga dalam hal yang sama, saya tidak memahami cara kerja metode Dispose karena, kita perlu mengimplementasikan tubuh fungsi dengan implementasi kita sendiri untuk semua metode antarmuka. Jadi bagaimana Antarmuka diterima atau disebut sebagai kontrak? Pertanyaan-pertanyaan ini terus bergulir di benak saya sampai sekarang dan terus terang saya tidak pernah melihat utas bagus yang akan menjelaskan pertanyaan saya dengan cara yang saya bisa mengerti.
MSDN seperti biasa terlihat sangat menakutkan dan tidak ada satu baris pun yang jelas di sana (Teman-teman , mohon maaf atas pengembangan tingkat tinggi, saya sangat merasa bahwa kode atau artikel apa pun harus mencapai pikiran siapa pun yang melihatnya, maka seperti yang dikatakan banyak orang, MSDN tidak berguna ).
Pewawancara berkata:
Dia memiliki 5 metode dan dia dengan senang hati mengimplementasikannya di kelas secara langsung, tetapi jika Anda harus menggunakan kelas atau antarmuka Abstrak, mana yang Anda pilih dan mengapa? Saya menjawabnya semua hal yang saya baca di berbagai blog mengatakan keuntungan dan kerugian dari kelas dan antarmuka abstrak, tetapi dia tidak yakin, dia mencoba untuk memahami "Mengapa Antarmuka" secara umum. "Mengapa kelas abstrak" secara umum bahkan jika saya dapat menerapkan metode yang sama hanya satu kali dan tidak akan mengubahnya.
Saya tidak melihat di mana di internet, saya bisa mendapatkan artikel yang akan menjelaskan saya dengan jelas tentang antarmuka dan fungsinya. Saya adalah salah satu dari banyak programmer, yang masih belum tahu tentang antarmuka (saya tahu teori dan metode yang saya gunakan) tetapi tidak puas karena saya memahaminya dengan jelas.
SqlConnection
mewarisi System.ComponentModel.Component
yang mengimplementasikan IDisposable
.
SqlConnection
mengimplementasikan IDisposable
.