Artikel ini ditujukan untuk siapa saja yang, untuk pertama kalinya, menjumpai konsep pola desain, pernah mendengar istilah singleton , atau entah bagaimana menerapkan pola singleton tetapi tidak mengerti apa yang sedang terjadi. Selamat datang! Siswa CodeGym menemukan pola desain untuk pertama kalinya di Level 15, saat kapten tiba-tiba meminta mereka untuk "memperkuat" pemahaman mereka dengan menerapkan pola Java Singleton dengan implementasi lambat. Siswa yang mendengar tentang pola tunggal untuk pertama kalinya langsung memiliki banyak pertanyaan: apa sebenarnya pola desain itu? Mengapa kita membutuhkannya? Apa itu tunggal ? Dan terakhir, apa itu implementasi malas? Mari kita jawab pertanyaan ini secara berurutan.
Dan pola singleton hanyalah salah satunya.
dengan blackjack dan angkadan menghabiskan banyak waktu untuk melakukannya, atau Anda dapat mengimplementasikan yang telah dipahami dan dijelaskan sejak lama. Hal yang sama berlaku dengan pola desain. Selain itu, dengan pola desain, kode menjadi lebih standar, dan saat menggunakan pola yang sesuai, kecil kemungkinan Anda membuat kesalahan, karena perangkap umum pola telah diidentifikasi dan dihilangkan sejak lama. Di atas segalanya, pengetahuan tentang pola membantu programmer memahami satu sama lain dengan lebih baik. Anda cukup menyebutkan nama pola alih-alih mencoba memberikan penjelasan panjang lebar kepada sesama pemrogram. Kesimpulannya, pola desain membantu Anda:
Untuk menyimpulkan bagian ini, kami mencatat bahwa seluruh tubuh pola desain dapat dibagi menjadi tiga kelompok besar:
Apa di dunia adalah pola desain?
Saya percaya sedikit sejarah adalah untuk menjawab pertanyaan ini dengan pemahaman terbaik. Ada empat penulis pemrograman terkenal (Erich Gamma, John Vlissides, Ralph Johnson, dan Richard Helm) yang memiliki ide menarik. Mereka memperhatikan bahwa pengembangan perangkat lunak sering kali mengharuskan mereka untuk menyelesaikan masalah yang kira-kira sama dan menulis kode yang terstruktur dengan cara yang sama. Jadi mereka memutuskan untuk mendeskripsikan pola tipikal yang seringkali perlu digunakan dalam pemrograman berorientasi objek. Buku mereka diterbitkan pada tahun 1994 dengan judul Design Patterns: Elements of Reusable Object-Oriented Software. Nama buku itu ternyata terlalu panjang dan orang-orang mulai menyebutnya buku Gang of Four. Edisi pertama menyertakan 23 pola. Setelah itu, puluhan pola lain ditemukan.Pola desain adalah solusi standar untuk masalah umum. |
Mengapa kita membutuhkan pola desain?
Anda dapat memprogram tanpa mengetahui pola: lagipula, pada Level 15, Anda telah menulis ratusan program mini di CodeGym bahkan tanpa mengetahui keberadaannya. Ini menunjukkan bahwa pola desain adalah sejenis alat yang penggunaannya membedakan master dari amatir: Pola desain menjelaskan cara memecahkan masalah tipikal dengan benar. Ini berarti mengetahui pola menghemat waktu Anda. Dengan cara itu, mereka mirip dengan algoritma. Misalnya, Anda dapat membuat algoritme penyortiran sendiri
|

Akhirnya, pola tunggal
Singleton adalah pola penciptaan . Pola ini memastikan bahwa hanya ada satu instance kelas dan menyediakan jalur akses global untuk objek ini. Dari uraian tersebut, harus jelas bahwa pola ini harus diterapkan dalam dua kasus:- ketika program Anda mengharuskan tidak lebih dari satu objek dari kelas tertentu harus dibuat. Misalnya, game komputer mungkin memiliki kelas Pahlawan dan hanya satu objek Pahlawan yang menggambarkan satu-satunya pahlawan dalam game tersebut.
- ketika Anda perlu memberikan titik untuk akses global ke suatu objek. Dengan kata lain, Anda perlu membuat objek tersedia dari mana saja dalam program. Sayangnya, tidak cukup hanya membuat variabel global, karena tidak dilindungi dari penulisan: siapa pun dapat mengubah nilai variabel, sehingga titik akses global objek mungkin hilang. Properti Singleton ini diperlukan, misalnya, saat Anda memiliki objek yang bekerja dengan database, dan Anda perlu mengakses database dari berbagai bagian program. Singleton akan memastikan bahwa tidak ada yang menulis kode yang menggantikan instance yang dibuat sebelumnya.
-
Temukan contoh Singleton dengan inisialisasi malas.
-
Buat tiga kelas tunggal — Matahari, Bulan, Bumi — dalam file terpisah menggunakan prinsip yang sama.
-
MelaksanakanPlanetantarmuka di kelas Matahari , Bulan dan Bumi .
- Di blok statis kelas Solusi , panggilreadKeyFromConsoleAndInitPlanetmetode.
-
MenerapkanreadKeyFromConsoleAndInitPlanetfungsionalitas metode:
-
5.1. Baca satu parameter String dari konsol
-
5.2. Jika parameter sama dengan salah satu dariPlanetkonstanta antarmuka, buat objek Planet yang sesuai .
-
-
Anda perlu memberi kelas bidang statis pribadi yang menyimpan satu objek:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; // #1 }
-
Jadikan konstruktor (default) pribadi. Ini berarti tidak dapat diakses di luar kelas dan tidak akan dapat mengembalikan objek baru:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton(){} // #2 }
-
Deklarasikan metode pembuatan statis yang akan digunakan untuk mendapatkan singleton:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton() {} public static LazyInitializedSingleton getInstance() { // #3 if (instance == null) { // If the object has not yet been created instance = new LazyInitializedSingleton(); // Create a new object } return instance; // Return the previously created object } }
Dan akhirnya... Inisialisasi malas apa yang ditanyakan kapten ini?
Inisialisasi malas juga disebut inisialisasi yang ditangguhkan. Ini adalah trik pemrograman di mana operasi intensif sumber daya (dan membuat objek adalah operasi intensif sumber daya) dilakukan sesuai permintaan, bukan sebelumnya. Jadi apa yang sebenarnya terjadi pada kode Singleton Java kita? Dengan kata lain, objek kita dibuat saat diakses, bukan sebelumnya. Anda tidak boleh berasumsi bahwa inisialisasi malas entah bagaimana terikat secara kaku dengan pola Singleton . Inisialisasi malas juga digunakan dalam pola desain kreasi lainnya, seperti Proxy dan Metode Pabrik, tetapi ini juga cerita lain =)
Lebih banyak membaca: |
---|
GO TO FULL VERSION