Apa itu prinsip terbuka-tertutup (OCP)?

Prinsip Terbuka / Tertutupadalah prinsip desain paling dasar di dunia pengembangan perangkat lunak. Ini membimbing kita bagaimana membangun sistem yang stabil dan fleksibel.

Definisi:

Sebuah entitas perangkat lunak seperti kelas, modul, dan fungsi harus terbuka untuk ekstensi dan tertutup untuk modifikasi.

Makna dari prinsip terbuka dan tertutup adalah bahwa sebuah entitas perangkat lunak harus diperluas untuk mencapai perubahan, bukan dengan memodifikasi kode yang ada untuk mencapai perubahan.

Prinsip terbuka dan tertutup adalah prinsip yang membatasi pengembangan dan desain saat ini untuk hal-hal masa depan dari entitas perangkat lunak.

Catatan: Prinsip terbuka dan tertutup terbuka untuk ekstensi dan tertutup untuk modifikasi. Ini tidak berarti bahwa tidak ada modifikasi yang akan dilakukan. Perubahan pada modul tingkat rendah harus dipasangkan dengan modul tingkat tinggi, jika tidak, itu akan menjadi fragmen kode yang terisolasi dan tidak berarti.

Pentingnya prinsip terbuka dan tertutup:

  • Dampak prinsip terbuka dan tertutup pada pengujian

Prinsip terbuka dan tertutup adalah untuk menjaga kode pengujian asli tetap dapat berjalan dengan normal, kita hanya perlu menguji kode yang diperluas.

  • Prinsip terbuka dan tertutup dapat meningkatkan keterpakaiannya kembali

Dalam desain berorientasi objek, semua logika digabungkan dari logika atomik, alih-alih menerapkan logika bisnis dalam sebuah kelas secara independen. Hanya dengan cara ini kode dapat digunakan kembali. Semakin kecil granularitasnya, semakin besar kemungkinan untuk digunakan kembali.

  • Prinsip terbuka dan tertutup dapat meningkatkan pemeliharaan
  • Persyaratan pengembangan berorientasi objek

Cara menggunakan prinsip terbuka dan tertutup:

Pertama, batasi ekstensi melalui antarmuka atau kelas abstrak, batasi ekstensi batas, dan jangan izinkan metode publik yang tidak ada dalam antarmuka atau kelas abstrak;

Kedua, coba gunakan antarmuka atau kelas abstrak untuk tipe parameter dan objek referensi alih-alih kelas implementasi;

Ketiga, lapisan abstraksi harus dijaga se-stabil mungkin, setelah dikonfirmasi, tidak ada modifikasi yang diizinkan.

Enkapsulasi perubahan memiliki dua makna:

Pertama, enkapsulasi perubahan yang sama ke dalam antarmuka atau kelas abstrak;

Kedua, enkapsulasi perubahan yang berbeda ke dalam antarmuka atau kelas abstrak yang berbeda. Dua perubahan yang berbeda tidak boleh muncul dalam antarmuka atau kelas abstrak yang sama.


Contoh

Sebuah contoh, membuka dan menutup pintu dengan tangan.

Jika ada permintaan baru, perlu untuk meningkatkan fungsi membuka dan menutup laci dengan tangan. Untuk kode, Anda perlu menambahkan kelas Drawer dan memodifikasi kelas Hand pada saat yang sama.

Mengikuti contoh prinsip terbuka dan tertutup OCP, membuka dan menutup pintu dengan tangan bergantung pada antarmuka, dan kelas implementasi spesifik mengimplementasikan antarmuka ini.

Ketika perlu untuk meningkatkan jumlah tangan untuk membuka dan menutup lemari es, kelas lemari es mengimplementasikan antarmuka ini tanpa memodifikasi kelas dan antarmuka Hand yang asli.

Lebih Banyak Sumber Daya Berorientasi Objek

This post is also available in Deutsch, English, Español, فارسی, Français, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *