Bagikan melalui


Desain Antarmuka

Nota

Konten ini dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2. Edisi itu diterbitkan pada tahun 2008, dan buku tersebut telah sepenuhnya direvisi pada edisi ketiga. Beberapa informasi di halaman ini mungkin sudah kedaluarsa.

Meskipun sebagian besar API paling baik dimodelkan menggunakan kelas dan struktur, ada beberapa kasus di mana antarmuka lebih sesuai atau merupakan satu-satunya opsi.

CLR tidak mendukung beberapa pewarisan (yaitu, kelas CLR tidak dapat mewarisi dari lebih dari satu kelas dasar), tetapi memungkinkan jenis untuk mengimplementasikan satu atau beberapa antarmuka selain mewarisi dari kelas dasar. Oleh karena itu, antarmuka sering digunakan untuk mencapai efek pewarisan ganda. Misalnya, IDisposable adalah antarmuka yang memungkinkan jenis untuk mendukung disposabilitas terlepas dari hierarki warisan lainnya di mana mereka ingin berpartisipasi.

Situasi lain di mana menentukan antarmuka sesuai adalah dalam membuat antarmuka umum yang dapat didukung oleh beberapa jenis, termasuk beberapa jenis nilai. Jenis nilai tidak dapat mewarisi dari jenis selain ValueType, tetapi dapat menerapkan antarmuka, jadi menggunakan antarmuka adalah satu-satunya opsi untuk menyediakan jenis dasar umum.

✔️ TENTUKAN antarmuka jika Anda memerlukan API umum tertentu untuk didukung oleh sekumpulan tipe yang mencakup tipe nilai.

✔️ PERTIMBANGKAN untuk menentukan antarmuka jika Anda perlu mendukung fungsionalitasnya pada jenis yang sudah mewarisi dari beberapa jenis lainnya.

❌ HINDARI menggunakan antarmuka penanda (antarmuka tanpa anggota).

Jika Anda perlu menandai kelas sebagai memiliki karakteristik tertentu (penanda), secara umum, gunakan atribut kustom daripada antarmuka.

✔️ DO menyediakan setidaknya satu tipe yang merupakan implementasi dari antarmuka.

Melakukan ini membantu memvalidasi desain antarmuka. Misalnya, List<T> adalah implementasi antarmuka IList<T> .

✔️ DO menyediakan setidaknya satu API yang menggunakan setiap antarmuka yang Anda tentukan (metode yang menerima antarmuka sebagai parameter atau properti yang diketik sebagai antarmuka).

Melakukan ini membantu memvalidasi desain antarmuka. Misalnya, antarmuka List<T>.Sort dikonsumsi oleh System.Collections.Generic.IComparer<T>.

❌ JANGAN tambahkan anggota ke antarmuka yang sebelumnya telah dikirim.

Melakukannya akan memutus implementasi antarmuka. Anda harus membuat antarmuka baru untuk menghindari masalah penerapan versi.

Kecuali untuk situasi yang dijelaskan dalam panduan ini, Anda harus, secara umum, memilih kelas daripada antarmuka dalam merancang pustaka yang dapat digunakan kembali kode terkelola.

© Sebagian 2005, 2009 Microsoft Corporation. Hak cipta dilindungi oleh undang-undang

Dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2 oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga