Bagikan melalui


Nama Kelas, Struktur, dan 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.

Panduan penamaan yang mengikuti berlaku untuk penamaan jenis umum.

✔️ Harus menamai kelas dan struktur dengan kata benda atau frasa kata benda, menggunakan PascalCasing.

Ini membedakan nama tipe dari metode, yang diberi nama menggunakan frasa kata kerja.

✔️ Antarmuka nama DO dengan frasa kata sifat, atau kadang-kadang dengan kata benda atau frasa kata benda.

Sebaiknya kata benda dan frasa kata benda digunakan dengan jarang karena mungkin menunjukkan bahwa jenisnya harus berupa kelas abstrak dan bukan antarmuka.

❌ JANGAN memberi nama kelas awalan (misalnya, "C").

✔️ PERTIMBANGKAN untuk mengakhiri nama kelas turunan dengan nama kelas dasar.

Ini sangat mudah dibaca dan menjelaskan hubungan dengan jelas. Beberapa contoh ini dalam kode adalah: ArgumentOutOfRangeException, yang merupakan semacam Exception, dan SerializableAttribute, yang merupakan semacam Attribute. Namun, penting untuk menggunakan penilaian yang wajar dalam menerapkan pedoman ini; misalnya, Button kelas adalah semacam Control peristiwa, meskipun Control tidak muncul atas namanya.

✔️ Awali nama antarmuka dengan huruf I, untuk menunjukkan bahwa tipe tersebut adalah antarmuka.

Misalnya, IComponent (kata benda deskriptif), ICustomAttributeProvider (frasa kata benda), dan IPersistable (kata sifat) adalah nama antarmuka yang sesuai. Seperti nama jenis lainnya, hindari singkatan.

✔️ PASTIKAN bahwa nama hanya berbeda dengan awalan "I" pada nama antarmuka ketika Anda menentukan pasangan kelas-antarmuka di mana kelas adalah implementasi standar antarmuka.

Nama Parameter Jenis Generik

Generik ditambahkan ke .NET Framework 2.0. Fitur ini memperkenalkan jenis pengidentifikasi baru yang disebut parameter jenis.

✔️ Lakukan penamaan parameter tipe generik dengan nama deskriptif, kecuali jika nama satu huruf benar-benar sudah jelas dan penggunaan nama deskriptif tidak memberikan nilai lebih.

✔️ PERTIMBANGKAN menggunakan T sebagai nama parameter tipe untuk tipe dengan satu parameter bertipe huruf tunggal.

public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }

✔️ Nama parameter jenis deskriptif awalan DO dengan T.

public interface ISessionChannel<TSession> where TSession : ISession {
    TSession Session { get; }
}

✔️ PERTIMBANGKAN menunjukkan batasan yang ditempatkan pada parameter jenis dalam nama parameter.

Misalnya, parameter yang dibatasi untuk ISession mungkin disebut TSession.

Nama Jenis yang Biasa

✔️ Pastikan mengikuti panduan yang dijelaskan dalam tabel berikut saat menamai tipe yang berasal dari atau diimplementasikan pada tipe .NET Framework tertentu.

Tipe Dasar Pedoman Jenis Turunan/Penerapan
System.Attribute ✔️ DO menambahkan akhiran "Atribut" ke nama kelas atribut kustom.
System.Delegate ✔️ DO tambahkan akhiran "EventHandler" ke nama delegasi yang digunakan dalam acara.

✔️ DO menambahkan akhiran "Callback" ke nama delegasi selain yang digunakan sebagai pengendali peristiwa.

❌ JANGAN tambahkan akhiran "Delegasi" ke delegasi.
System.EventArgs ✔️ DO tambahkan akhiran "EventArgs."
System.Enum ❌ JANGAN berasal dari kelas ini; gunakan kata kunci yang didukung oleh bahasa Anda sebagai gantinya; misalnya, di C#, gunakan enum kata kunci.

❌ JANGAN tambahkan akhiran "Enum" atau "Bendera."
System.Exception ✔️ Harus menambahkan akhiran "Pengecualian."
IDictionary
IDictionary<TKey,TValue>
✔️ DO menambahkan akhiran "Kamus." Perhatikan bahwa IDictionary adalah jenis koleksi tertentu, tetapi pedoman ini lebih diutamakan daripada pedoman koleksi yang lebih umum yang mengikuti.
IEnumerable
ICollection
IList
IEnumerable<T>
ICollection<T>
IList<T>
✔️ PASTIKAN untuk menambahkan akhiran "Koleksi."
System.IO.Stream ✔️ DO menambahkan akhiran "Stream."
CodeAccessPermission IPermission ✔️ Harap tambahkan akhiran "Izin."

Enumerasi Penamaan

Nama jenis enumerasi (juga disebut enum) secara umum harus mengikuti aturan penamaan jenis standar (PascalCasing, dll.). Namun, ada panduan tambahan yang berlaku khusus untuk enum.

Gunakan nama jenis tunggal untuk enumerasi kecuali nilainya adalah bidang bit.

✔️ DO menggunakan nama jenis jamak untuk enumerasi dengan bidang bit sebagai nilai, juga disebut enum bendera.

❌ JANGAN gunakan akhiran "Enum" dalam nama jenis enum.

❌ JANGAN gunakan akhiran "Flag" atau "Flags" dalam nama tipe enum.

❌ JANGAN gunakan awalan pada nama nilai enumerasi (misalnya, "ad" untuk enum ADO, "rtf" untuk enum teks kaya, dll.).

© Porsi 2005, 2009 Microsoft Corporation. Seluruh hak cipta dilindungi.

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