Bagikan melalui


Desain Kelas Abstrak

Catatan

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.

❌ JANGAN mendefinisikan konstruktor internal publik atau yang dilindungi dalam jenis abstrak.

Konstruktor harus bersifat publik hanya jika pengguna perlu membuat instans jenis tersebut. Karena Anda tidak dapat membuat instans dari jenis abstrak, jenis abstrak dengan konstruktor publik dirancang dengan salah dan menyesatkan pengguna.

✔️ Definisikan konstruktor yang dilindungi atau internal dalam kelas abstrak.

Konstruktor yang dilindungi lebih umum dan hanya memungkinkan kelas dasar untuk melakukan inisialisasi sendiri ketika subjenis dibuat.

Konstruktor internal dapat digunakan untuk membatasi implementasi konkret dari kelas abstrak hingga ke kelas yang didefinisikan oleh perakitan.

️✔️Berikan setidaknya satu jenis konkret yang mewarisi dari setiap kelas abstrak yang Anda kirimkan.

Melakukan tindakan ini membantu memvalidasi desain kelas abstrak. Misalnya, System.IO.FileStream adalah implementasi dari kelas abstrak System.IO.Stream.

Portions © 2005, 2009 Microsoft Corporation. Semua hak dilindungi undang-undang.

Dicetak ulang dengan izin dari Pearson Education, Inc. dari Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga