Artikel iki ditujokake kanggo sapa wae sing, kanggo pisanan, nemoni konsep pola desain, wis krungu istilah singleton , utawa piye wae ngetrapake pola singleton nanging ora ngerti apa sing kedadeyan. Sugeng rawuh! Siswa CodeGym nemoni pola desain kanggo pisanan ing Level 15, nalika kapten kanthi ora sengaja njaluk dheweke "nguatake" pemahaman kanthi ngetrapake pola Java Singleton kanthi implementasine malas. Siswa krungu bab pola singleton kanggo pisanan langsung duwe akeh pitakonan: apa ing donya iku pola desain? Apa sebabe kita butuh? Apa sing singleton ? Lan pungkasanipun, apa implementasine kesed? Ayo wangsulana pitakon-pitakon iki kanthi urut.
Lan pola singleton mung salah sijine.
karo blackjack lan nomerlan nglampahi akèh wektu kanggo nglakoni, utawa sampeyan bisa ngleksanakake siji sing wis dingerteni lan diterangake kanggo dangu. Padha bener karo pola desain. Kajaba iku, kanthi pola desain, kode dadi luwih standar, lan nalika nggunakake pola sing cocog, sampeyan ora bakal nggawe kesalahan, amarga pitfalls umum pola kasebut wis diidentifikasi lan diilangi. Ing ndhuwur kabeh, kawruh babagan pola mbantu para programer luwih ngerti saben liyane. Sampeyan mung bisa ngucapake jeneng pola tinimbang nyoba menehi panjelasan sing dawa kanggo kanca programer. Ringkesan, pola desain mbantu sampeyan:
Kanggo ngrampungake bagean iki, kita nyathet yen kabeh pola desain bisa dipérang dadi telung klompok gedhe:
Apa pola desain ing donya?
Aku pracaya sejarah sethitik kanggo njawab pitakonan iki karo pangerten paling. Ana papat penulis program sing misuwur (Erich Gamma, John Vlissides, Ralph Johnson, lan Richard Helm) sing nggawe ide sing menarik. Dheweke ngerteni manawa pangembangan piranti lunak asring mbutuhake dheweke ngrampungake masalah sing padha lan nulis kode kanthi cara sing padha. Dadi dheweke mutusake kanggo njlèntrèhaké pola khas sing asring kudu digunakake ing pemrograman berorientasi obyek. Buku kasebut diterbitake ing taun 1994 kanthi judhul Design Patterns: Elements of Reusable Object-Oriented Software. Jeneng buku kasebut dadi dawa banget lan wong-wong wiwit mung nyebat buku kasebut dening Gang of Four. Edisi pisanan kalebu 23 pola. Banjur, puluhan pola liyane ditemokake.Pola desain minangka solusi standar kanggo masalah umum. |
Napa kita butuh pola desain?
Sampeyan bisa program tanpa ngerti pola: sawise kabeh, dening Level 15, sampeyan wis nulis atusan mini-program ing CodeGym tanpa ngerti sing padha ana. Iki nuduhake manawa pola desain minangka alat sing panggunaane mbedakake master saka amatir: Pola desain nggambarake cara ngatasi masalah sing khas. Iki tegese ngerti pola ngirit wektu sampeyan. Kanthi cara kasebut, padha karo algoritma. Contone, sampeyan bisa nggawe algoritma ngurutake dhewe
|
Pungkasan, pola singleton
Singleton minangka pola kreasi . Pola iki mesthekake yen mung ana siji conto kelas lan nyedhiyakake jalur akses global kanggo obyek iki. Saka katrangan kasebut, kudu jelas yen pola iki kudu ditrapake ing rong kasus:- nalika program sampeyan mbutuhake ora luwih saka siji obyek saka kelas tartamtu kudu digawe. Contone, game komputer bisa uga duwe kelas Pahlawan lan mung siji obyek Pahlawan sing nggambarake pahlawan tunggal ing game kasebut.
- nalika sampeyan kudu nyedhiyani titik kanggo akses global kanggo obyek. Ing tembung liyane, sampeyan kudu nggawe obyek kasedhiya saka ngendi wae ing program. Sayange, ora cukup mung nggawe variabel global, amarga ora dilindhungi nulis: sapa wae bisa ngganti nilai variabel kasebut, saengga titik akses global obyek bisa ilang. Iki sifat Singleton perlu, Contone, nalika sampeyan duwe obyek sing dianggo karo database, lan sampeyan kudu ngakses database saka macem-macem bagean saka program. A Singleton bakal mesthekake yen ora ana sing nulis kode sing ngganti conto sing digawe sadurunge.
-
Golek conto Singleton karo initialization puguh.
-
Nggawe telung kelas tunggal - Srengenge, Bulan, Bumi - ing file sing kapisah nggunakake prinsip sing padha.
-
ngleksanakakePlanetantarmuka ing kelas Sun , Bulan lan Bumi .
- Ing blok statis saka kelas Solution nelpon ingreadKeyFromConsoleAndInitPlanetcara.
-
NgleksanakakereadKeyFromConsoleAndInitPlanetfungsi metode:
-
5.1. Waca siji parameter String saka console
-
5.2. Yen parameter padha karo salah siji sakaPlanetkonstanta antarmuka, nggawe obyek Planet sing cocog .
-
-
Sampeyan kudu menehi kelas lapangan statis pribadi sing nyimpen obyek siji:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; // #1 }
-
Nggawe konstruktor (standar) pribadi. Iki tegese ora bisa diakses ing njaba kelas lan ora bakal bisa ngasilake obyek anyar:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton(){} // #2 }
-
Nyatakake cara nggawe statis sing bakal digunakake kanggo entuk 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 } }
GO TO FULL VERSION