"Helo, Amigo! Ini saya—sekali lagi. Saya ingin memberi anda satu lagi sudut pandangan tentang antara muka. Anda lihat, kebanyakan masa kelas adalah model objek tertentu. Sebaliknya, antara muka lebih seperti kebolehan objek atau peranan, bukannya objek itu sendiri."

Contohnya, perkara seperti kereta, basikal, motosikal dan roda paling baik digambarkan sebagai kelas dan objek. Tetapi kebolehan mereka, seperti «Saya boleh bergerak», «Saya boleh membawa orang», dan «Saya boleh meletak kereta», lebih baik digambarkan sebagai antara muka. Lihat contoh ini:
kod Java | Penerangan |
---|---|
|
Sesuai dengan keupayaan untuk bergerak. |
|
Sesuai dengan keupayaan untuk bergerak. |
|
Sesuai dengan keupayaan membawa kargo. |
|
Kelas "roda". Mempunyai keupayaan untuk bergerak. |
|
Kelas "kereta". Mempunyai keupayaan untuk bergerak, dipandu oleh seseorang, dan membawa kargo. |
|
Kelas "papan luncur". Mempunyai keupayaan untuk bergerak dan dikawal oleh seseorang. |
Antara muka sangat memudahkan kehidupan pengaturcara. Program selalunya mempunyai beribu-ribu objek, beratus-ratus kelas, dan hanya beberapa dozen antara muka (peranan). Terdapat sedikit peranan, tetapi mereka boleh digabungkan dalam banyak cara (kelas).
Intinya ialah anda tidak perlu menulis interaksi penentu kod dengan setiap kelas lain. Apa yang anda perlu lakukan ialah berinteraksi dengan peranan (antara muka).
Bayangkan anda seorang pembina robotik. Anda mempunyai berpuluh-puluh robot bawahan dan setiap daripada mereka boleh mempunyai pelbagai kemahiran. Katakan anda perlu segera menyelesaikan pembinaan dinding. Anda hanya mengambil semua robot yang mempunyai keupayaan untuk "membina" dan memberitahu mereka untuk membina dinding. Anda tidak kisah robot mana yang melakukannya. Biarkan ia menjadi tin air robot. Jika ia tahu membina, biarkan ia membina.Begini rupanya dalam kod:
kod Java | Penerangan |
---|---|
|
Keupayaan untuk «membina tembok». Memahami arahan «bina tembok» (mempunyai kaedah yang sesuai). |
|
Robot yang mempunyai kebolehan/kemahiran ini.
Penyiraman tidak boleh membina dinding (ia tidak melaksanakan antara muka WallBuilder). |
|
Bagaimanakah kita memberi arahan untuk membina tembok? |
"Itu sangat menarik. Saya tidak pernah bermimpi bahawa antara muka boleh menjadi topik yang menarik."
"Dan kemudian beberapa! Bersama-sama dengan polimorfisme, ia benar-benar mengagumkan."
GO TO FULL VERSION