Skip to main content

Apa itu mixin?

Dalam pemrograman komputer, mixin adalah kelas yang diwarisi oleh kelas lain tetapi tidak dimaksudkan untuk dipakai.Satu kelas dapat mewarisi banyak mixin, sehingga banyak koleksi fungsi dapat dikonsolidasikan dengan mudah.Meskipun banyak bahasa pemrograman umum menggunakan metodologi mixin, ada banyak lagi yang tidak, termasuk C ++ dan Java.Secara umum, mixin ditemukan dalam bahasa scripting atau bahasa -bahasa yang memiliki kemampuan untuk membuat skrip, seperti JavaScript dan Perl.

Mixin unik karena mereka menjadi bagian dari subclass selama kompilasi.Metode dan konstanta mereka termasuk dalam subclass.Ciri unik lain dari kelas mixin adalah bahwa metode dapat didefinisikan dan terikat pada objek saat runtime.Sebagian besar bahasa menggunakan pendekatan yang berbeda, mengikat dan mendefinisikan metode pada waktu kompilasi daripada runtime.Ikatan runtime ini memungkinkan mixin menjadi sangat fleksibel.

Masalah umum dalam warisan berganda adalah ambiguitas dalam panggilan metode, dan mixin dapat menyelesaikan masalah ini karena mereka tidak mengikuti aturan yang sama persis dengan warisan berganda.Misalnya, warisan berganda dapat menciptakan apa yang disebut berlian kematian, di mana orang tua kelas A memiliki subkelas B dan C, dan kelas D mewarisi dari kedua kelas B dan C. Masalah dalam skenario ini adalah metode yang memiliki hal yang samaNama di Kelas A, B dan C semuanya dapat diwarisi ke Kelas D, membuat beberapa versi dari metode yang sama tanpa perbedaan yang jelas.Mixins memecahkan masalah ini dengan menjaga setiap versi metode berbeda, daripada mencoba menimpa mereka seperti dalam warisan berganda standar.

Mixin tidak mengesampingkan metode dalam kelas yang diwarisi.Misalnya, jika suatu kelas A mendefinisikan metode MyMethod dan mewarisi Mixin B yang juga Metode MyMethod, kedua metode ini masih dapat dipanggil tanpa ambiguitas, dan implementasi MetMethod di Kelas A masih akan sepenuhnya dapat diakses.Bagaimana tepatnya metode ini akan dipanggil tergantung pada bahasa di mana mixin diimplementasikan.

Beberapa bahasa pemrograman yang tidak menggunakan mixin, seperti java, menggunakan antarmuka untuk meniru mereka.Antarmuka dalam bahasa -bahasa ini tidak meniru fungsionalitas penuh mixin, karena antarmuka hanya dapat berisi konstanta dan deklarasi metode.Mixins, di sisi lain, dapat berisi implementasi penuh metode.Bahasa -bahasa yang tidak mendukung mixin sering memiliki alternatif yang layak yang dapat dibujuk untuk melakukan hal yang kira -kira sama.