هن آرٽيڪل جو مقصد هر ڪنهن لاءِ آهي، جيڪو پهريون ڀيرو، ڊزائن جي نمونن جي تصور سان منهن ڏئي رهيو آهي، سنگلٽن جو اصطلاح ٻڌو آهي، يا ڪنهن به طرح سنگلٽن پيٽرن تي عمل ڪيو آهي پر اهو نه سمجهي سگهيو ته ڇا ٿي رهيو آهي. ڀلي ڪري آيا! ڪوڊ گيم شاگردن کي پهريون ڀيرو ليول 15 تي ڊيزائن جي نمونن سان منهن ڏيڻو پوي ٿو، جڏهن ڪئپٽن غير متوقع طور تي انهن کي "مضبوط" ڪرڻ لاءِ پڇي ٿو جاوا سنگلٽن نمونن کي سست عمل سان لاڳو ڪندي انهن جي سمجهاڻي کي. شاگرد پهريون ڀيرو سنگلٽن پيٽرن جي باري ۾ ٻڌي رهيا آهن فوري طور تي ڪيترائي سوال آهن: دنيا ۾ ڇا آهي ڊزائن جو نمونو؟ اسان کي ان جي ضرورت ڇو آهي؟ سنگلٽن ڇا آهي ؟ ۽ آخرڪار، سست عمل ڇا آهي؟ اچو ته انهن سوالن جا جواب ترتيب ڏيو.
۽ سنگلٽن جو نمونو صرف انهن مان هڪ آهي.
مثال طور، توهان بليڪ جيڪ ۽ انگن سان پنهنجو ترتيب ڏيڻ وارو الگورٿم ٺاهي سگهو ٿا ۽ ائين ڪرڻ ۾ گهڻو وقت خرچ ڪري سگهو ٿا، يا توهان ان تي عمل ڪري سگهو ٿا جيڪو گهڻي وقت کان سمجهي ۽ بيان ڪيو ويو آهي. ساڳيو ئي ڊزائن جي نمونن سان صحيح آهي. اضافي طور تي، ڊيزائن جي نمونن سان، ڪوڊ وڌيڪ معياري ٿي ويندو آهي، ۽ مناسب نموني استعمال ڪرڻ وقت، توهان کي غلطي ڪرڻ جو امڪان گهٽ آهي، ڇاڪاڻ ته نموني جي عام خرابين جي نشاندهي ڪئي وئي هئي ۽ گهڻو اڳ ختم ٿي ويا. هر شي جي چوٽي تي، نمونن جي ڄاڻ پروگرامرن کي هڪ ٻئي کي بهتر سمجهڻ ۾ مدد ڪري ٿي. توھان پنھنجي ساٿي پروگرامرز کي ڊگھي وضاحت مهيا ڪرڻ جي بدران ھڪڙي نموني جو نالو چئي سگھو ٿا. خلاصو، ڊيزائن جا نمونا توهان جي مدد ڪن ٿا:
هن حصي کي ختم ڪرڻ لاء، اسان ياد رکون ٿا ته ڊزائن جي نمونن جي سڄي جسم کي ٽن وڏن گروپن ۾ ورهائي سگهجي ٿو:
دنيا ۾ ڇا آهي ڊزائن جو نمونو؟
مان سمجهان ٿو ته ٿوري تاريخ آهي انهي سوال جو جواب ڏيڻ لاءِ بهترين سمجهاڻي سان. هتي چار مشهور پروگرامنگ ليکڪ آهن (ايريچ گاما، جان ويلسڊس، رالف جانسن، ۽ رچرڊ هيلم) جيڪي هڪ دلچسپ خيال سان آيا. انهن محسوس ڪيو ته سافٽ ويئر ڊولپمينٽ اڪثر ڪري انهن کي گهربل ساڳيون ئي مسئلا حل ڪرڻ جي ضرورت آهي ۽ ساڳئي طريقي سان ٺهيل ڪوڊ لکڻ. تنهن ڪري انهن عام نمونن کي بيان ڪرڻ جو فيصلو ڪيو جيڪي اڪثر استعمال ڪرڻ جي ضرورت هونديون اعتراض تي مبني پروگرامنگ ۾. سندن ڪتاب 1994ع ۾ ڇپيو، جنهن جي عنوان سان ڊيزائن پيٽرن: ايليمينٽس آف ري يوز ايبل آبجیکٹ-اورينٽيڊ سافٽ ويئر آهي. ڪتاب جو نالو تمام ڊگهو ٿي ويو ۽ ماڻهو ان کي گنگ آف فور جو ڪتاب سڏڻ لڳا. پهرين ڇاپي ۾ 23 نمونا شامل هئا. ان کان پوء، ڪيترن ئي ٻين نمونن کي دريافت ڪيو ويو. تنهن ڪري اچو ته هن پيراگراف جي سوال جو مختصر جواب ڏيون (دنيا ۾ ڇا آهي ڊزائن جا نمونا؟)ھڪڙي ڊيزائن جو نمونو ھڪڙي عام مسئلي جو معياري حل آھي. |
اسان کي ڊزائن جي نمونن جي ضرورت ڇو آهي؟
توھان بغير نمونن کي ڄاڻڻ کان بغير پروگرام ڪري سگھو ٿا: آخرڪار، سطح 15 تائين، توھان اڳ ۾ ئي لکيا آھن سوين ميني پروگرام CodeGym تي بغير ڄاڻڻ جي ته اھي موجود آھن. اهو مشورو ڏئي ٿو ته ڊزائن جا نمونا هڪ قسم جا اوزار آهن جن جي استعمال ماسٽر کي شوقين کان ڌار ڪري ٿو: ڊزائن جا نمونا بيان ڪن ٿا ته ڪيئن صحيح طريقي سان هڪ عام مسئلو حل ڪجي. هن جو مطلب اهو آهي ته ڄاڻڻ وارو نمونو توهان جو وقت بچائيندو آهي. انهي طريقي سان، اهي الگورتھم وانگر آهن.
|

آخرڪار، سنگلٽن جو نمونو
سنگلٽن هڪ تخليقي نمونو آهي . اهو نمونو يقيني بڻائي ٿو ته هڪ طبقي جو صرف هڪ مثال آهي ۽ هن اعتراض لاء هڪ عالمي رسائي پوائنٽ مهيا ڪري ٿو. بيان مان، اهو واضح ٿيڻ گهرجي ته هن نموني کي ٻن صورتن ۾ لاڳو ڪيو وڃي:- جڏهن توهان جي پروگرام جي ضرورت آهي ته ڪنهن خاص طبقي جي هڪ کان وڌيڪ اعتراض پيدا نه ڪيو وڃي. مثال طور، هڪ ڪمپيوٽر جي راند ۾ شايد هيرو ڪلاس ۽ صرف هڪ هيرو اعتراض هجي جيڪو راند ۾ واحد هيرو بيان ڪري ٿو.
- جڏهن توهان کي ڪنهن شئي تائين عالمي رسائي لاءِ پوائنٽ مهيا ڪرڻ جي ضرورت آهي. ٻين لفظن ۾، توهان کي ضرورت آهي اعتراض کي دستياب ڪرڻ جي پروگرام ۾ ڪٿي به. افسوس، اهو صرف هڪ عالمي متغير ٺاهڻ لاء ڪافي ناهي، ڇاڪاڻ ته اهو لکڻ کان محفوظ نه آهي: ڪو به ماڻهو متغير جي قيمت کي تبديل ڪري سگهي ٿو، تنهنڪري اعتراض جي عالمي رسائي واري نقطي وڃائي سگھي ٿي. هڪ سنگلٽن جون اهي خاصيتون ضروري آهن، مثال طور، جڏهن توهان وٽ هڪ اعتراض آهي جيڪو ڊيٽابيس سان ڪم ڪري ٿو، ۽ توهان کي پروگرام جي مختلف حصن مان ڊيٽابيس تائين رسائي جي ضرورت آهي. هڪ سنگلٽن انهي ڳالهه کي يقيني بڻائيندو ته ڪو به ڪوڊ نه لکندو آهي جيڪو اڳ ٺاهيل مثال کي تبديل ڪري ٿو.
-
سست شروعات سان سنگلٽن جو مثال ڳوليو .
-
ٽي سنگلٽن ڪلاس ٺاهيو - سج، چنڊ، ڌرتي - الڳ فائلن ۾ ساڳي اصول کي استعمال ڪندي.
-
لاڳو ڪرڻسياروسج ، چنڊ ۽ ڌرتي طبقن ۾ انٽرفيس .
- حل ڪلاس جي جامد بلاڪ ۾ ڪال ڪريوreadKeyFromConsoleAndInitPlanetطريقو.
-
لاڳو ڪريوreadKeyFromConsoleAndInitPlanetطريقيڪار جي ڪارڪردگي:
-
5.1. ڪنسول مان ھڪڙو اسٽرنگ پيٽرولر پڙھو
-
5.2. جيڪڏهن پيٽرول هڪ جي برابر آهيسياروانٽرفيس جي مستقل، مناسب ٺاھ ٺاھيو ThePlanet اعتراض.
-
-
توهان کي ڪلاس کي هڪ خانگي جامد فيلڊ ڏيڻو پوندو جيڪو هڪ واحد اعتراض کي ذخيرو ڪري ٿو:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; // #1 }
-
ٺاھيو (ڊفالٽ) ٺاھيندڙ خانگي. ان جو مطلب اهو آهي ته اهو ڪلاس کان ٻاهر نه ٿو رسائي سگهجي ۽ نوان شيون واپس ڪرڻ جي قابل نه هوندا:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton(){} // #2 }
-
هڪ جامد تخليق جو طريقو بيان ڪريو جيڪو استعمال ڪيو ويندو سنگلٽن حاصل ڪرڻ لاءِ:
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