Rumah > Java > javaTutorial > Reka Bentuk Kelas Lanjutan menggunakan Kelas Tertutup Java

Reka Bentuk Kelas Lanjutan menggunakan Kelas Tertutup Java

DDD
Lepaskan: 2024-11-03 01:51:03
asal
451 orang telah melayarinya

Advanced Class Design using Java Sealed Classes

Pengenalan

Dalam pengaturcaraan berorientasikan objek, reka bentuk kelas memainkan peranan penting dalam mencipta kod yang mantap dan boleh diselenggara. Dengan keluaran Java 15, ciri baharu yang dipanggil kelas tertutup telah diperkenalkan, menambah lapisan kawalan dan keselamatan tambahan pada reka bentuk kelas. Kelas tertutup membenarkan pembangun menyekat hierarki kelas, menghalang kelas luaran daripada melanjutkan atau melaksanakannya. Dalam artikel ini, kita akan membincangkan konsep kelas tertutup, faedahnya dan cara ia boleh dilaksanakan di Jawa.

Apakah itu kelas tertutup?

Kelas tertutup ialah jenis kelas baharu yang diperkenalkan dalam Java 15, yang mengehadkan pewarisan dan pelaksanaan subkelasnya. Ia boleh dianggap sebagai bekas tertutup yang membenarkan hanya kelas tertentu untuk melanjutkan atau melaksanakannya. Setelah kelas diisytiharkan sebagai dimeterai, ia menjadi muktamad secara lalai dan sebarang percubaan untuk melanjutkan atau melaksanakannya oleh kelas luaran akan mengakibatkan ralat penyusunan.

Kelebihan menggunakan kelas tertutup

1. Keselamatan Dipertingkat: Kelas tertutup menyediakan lapisan keselamatan tambahan dengan mengehadkan pewarisan dan pelaksanaan subkelasnya. Ini menghalang pengubahsuaian kelas teras tanpa kebenaran dan memastikan bahawa hanya subkelas yang dipercayai boleh mengakses dan mengubah suai kelas yang dimeterai.

2. Kawalan Lebih Baik ke atas Hierarki Kelas: Dengan kelas tertutup, pembangun mempunyai kawalan yang lebih baik ke atas hierarki kelas. Dengan mentakrifkan subkelas yang dibenarkan secara eksplisit, kami boleh memastikan bahawa hanya kelas yang relevan dan direka bentuk dengan betul melanjutkan atau melaksanakan kelas yang dimeterai, yang membawa kepada pangkalan kod yang lebih boleh diselenggara.

3. Fleksibiliti Kod yang Dipertingkat: Dengan mengehadkan subkelas yang boleh melanjutkan atau melaksanakan kelas tertutup, kami boleh membuat perubahan atau pemfaktoran semula yang diperlukan tanpa perlu risau tentang memecahkan sebarang kod luaran. Ini memberikan rasa fleksibiliti semasa bekerja dengan kelas tertutup dan memastikan pangkalan kod kekal stabil dan boleh diselenggara.

Pelaksanaan Kelas Tertutup

Untuk mengisytiharkan kelas sebagai dimeterai, kita boleh menggunakan kata kunci 'tertutup' dalam pengisytiharan kelas seperti yang ditunjukkan di bawah:

//Sealed class declaration
public sealed class Triangle permits EquilateralTriangle, RightAngleTriangle {

    //Class body
}
Salin selepas log masuk
Salin selepas log masuk

Di sini, kata kunci 'permit' digunakan untuk menentukan subkelas yang dibenarkan untuk melanjutkan kelas yang dimeterai. Dalam contoh di atas, hanya kelas 'EquilateralTriangle' dan 'RightAngleTriangle' boleh melanjutkan kelas 'Triangle'.

Sekarang, mari buat subkelas yang boleh memanjangkan kelas 'Segitiga'.

//Example of Subclass that Extends Sealed Class
public final class EquilateralTriangle extends Triangle {
    //Class body
}

//Example of Subclass that Extends Sealed Class
public non-sealed class RightAngleTriangle extends Triangle {
    //Class body
}
Salin selepas log masuk
Salin selepas log masuk

Perhatikan bahawa kelas 'EquilateralTriangle' diisytiharkan sebagai 'final' kerana ia merupakan subkelas terakhir dalam hierarki warisan, dan kelas 'RightAngleTriangle' diisytiharkan sebagai 'non-sealed' kerana ia membenarkan subclass selanjutnya memanjangkannya.

Seterusnya, mari lihat contoh pelaksanaan antara muka tertutup. Antara muka boleh diisytiharkan sebagai dimeterai menggunakan sintaks yang sama seperti kelas yang dimeterai.

//Sealed class declaration
public sealed class Triangle permits EquilateralTriangle, RightAngleTriangle {

    //Class body
}
Salin selepas log masuk
Salin selepas log masuk

Di sini, kata kunci 'permit' digunakan untuk menentukan kelas yang dibenarkan untuk melaksanakan antara muka yang dimeterai. Dalam contoh di atas, hanya kelas 'Rectangle' dan 'Circle' boleh melaksanakan antara muka 'Shape'.

//Example of Subclass that Extends Sealed Class
public final class EquilateralTriangle extends Triangle {
    //Class body
}

//Example of Subclass that Extends Sealed Class
public non-sealed class RightAngleTriangle extends Triangle {
    //Class body
}
Salin selepas log masuk
Salin selepas log masuk

Perhatikan bahawa kelas 'Rectangle' diisytiharkan sebagai 'final' kerana ia adalah kelas terakhir untuk melaksanakan antara muka 'Shape', dan kelas 'Circle' diisytiharkan sebagai 'non-sealed' kerana ia membenarkan kelas selanjutnya untuk melaksanakannya.

Peraturan warisan untuk kelas dan antara muka tertutup

  1. Kelas yang dimeterai mesti secara eksplisit membenarkan subkelas yang boleh melanjutkannya.
  2. Semua subkelas yang dibenarkan mestilah subkelas langsung daripada kelas tertutup. Ini bermakna kita tidak boleh melanjutkan subkelas yang tidak dibenarkan untuk mencipta subkelas tidak langsung bagi kelas yang dimeterai.
  3. Antara muka yang dimeterai mesti membenarkan kelas yang boleh melaksanakannya secara eksplisit.
  4. Semua kelas yang dibenarkan mesti melaksanakan semua kaedah antara muka. Ini bermakna kita tidak boleh mencipta kelas yang melaksanakan sebahagian antara muka tertutup.

Kesimpulan

Kelas tertutup ialah tambahan hebat kepada Java yang boleh meningkatkan reka bentuk kelas dengan hebat dan menjadikan pangkalan kod lebih selamat dan boleh diselenggara. Dengan mengehadkan hierarki kelas dan antara muka, kelas tertutup menyediakan lapisan kawalan dan fleksibiliti tambahan semasa mereka bentuk kelas. Dengan ciri baharu ini, pembangun boleh memastikan bahawa hanya subkelas yang dipercayai atau kelas pelaksana boleh mengakses dan mengubah suai kelas yang dimeterai, yang membawa kepada pangkalan kod yang lebih stabil dan mantap. Tingkatkan kemahiran Java anda dengan mengambil Pensijilan Java terkini.

Atas ialah kandungan terperinci Reka Bentuk Kelas Lanjutan menggunakan Kelas Tertutup Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan