کتاب کی خصوصیات
ہیڈ فرسٹ ڈیزائن پیٹرن ہمیں بتاتا ہے کہ پیٹرن کیا ہیں، انہیں کیسے استعمال کیا جائے، اور ان کے بارے میں کیسے سوچا جائے۔ پیٹرن ایک ٹیمپلیٹ ہے، مسائل کے مخصوص سیٹ کے لیے ایک عالمگیر حل۔ ڈیزائن پیٹرن ، بدلے میں، عام طور پر استعمال شدہ آرکیٹیکچرل حل ہیں جو صارف کے دوستانہ اور لچکدار ایپلی کیشنز کو لکھنے کے لیے استعمال کیے جا سکتے ہیں۔ پوری دنیا کے ڈویلپرز ایک جیسے مسائل کو ایک ہی نقطہ نظر سے حل کرتے ہیں۔ جیسا کہ تشریح کہتی ہے، اگر آپ پہیے کو دوبارہ ایجاد نہیں کرنا چاہتے ہیں، تو ریڈی میڈ ڈیزائن ٹیمپلیٹس (پیٹرنز) استعمال کریں، جن کے ساتھ یہ کتاب کام کرنے کے لیے وقف ہے ۔ الگ سے، یہ مواد کی پیش کش پر توجہ دینے کے قابل ہے: ہیڈ فرسٹ سیریز کی کتابیں اپنی سادگی کے لیے مشہور ہیں اور ایک ہی نشست میں پڑھی جاتی ہیں۔ "ڈیزائن پیٹرن" کوئی استثنا نہیں ہے۔ یہ مندرجہ ذیل کلیدی اصولوں پر بھی عمل پیرا ہے:- مرئیت
- پریزنٹیشن کا گفتگو کا انداز
- مثالوں کی ایک بڑی تعداد
- قارئین کی فعال شرکت
- جذبات کی اپیل
- قارئین کی توجہ حاصل کرنا
مرکزی تھیم اور کلیدی خیال
"یقینی طور پر کسی نے آپ کا مسئلہ پہلے ہی حل کر دیا ہے" - اس طرح کتاب کا پہلا باب شروع ہوتا ہے، پروگرامنگ میں ڈیزائن پیٹرن کے پورے معنی کو بیان کرتا ہے۔ اصل مقصد یہ ہے کہ ان کا مفہوم درست طریقے سے قارئین تک پہنچایا جائے، کیونکہ سب سے پہلے، پروگرامر کو معلوم ہونا چاہیے کہ پیٹرن کس چیز کے لیے ہیں اور انہیں کس مقام پر لاگو کرنے کی ضرورت ہے۔ بنیادی طور پر، آپ کو پہلے ٹیمپلیٹس کو اپنے سر میں چھوٹے چھوٹے ٹکڑوں میں ترتیب دینے کی ضرورت ہے، اور اس کے بعد ہی انہیں پروگراموں میں لاگو کریں۔ اگر پروگرامنگ میں ابتدائی طور پر پیٹرن کی اچھی سمجھ ہے، تو ان کا استعمال کوڈ کو بہت پیچیدہ بنا سکتا ہے (لیکن اسے آسان بنانا چاہیے!) اس سوال پر کہ "ڈیزائن کے پیٹرن کیوں استعمال کیے جائیں؟" کتاب ایک واضح جواب دیتی ہے: "تجزیہ، وراثت، اور پولیمورفزم جیسے تصورات کو جاننا آپ کو ایک اچھا OO ڈیزائنر نہیں بناتا ہے۔ نمونوں میں OO ڈیزائن کا ثابت شدہ تجربہ ہوتا ہے۔"خلاصہ"
کتاب کو 14 ابواب کے علاوہ ایک تعارف میں تقسیم کیا گیا ہے۔ شروع میں، کتاب کے مصنفین قاری کو تیار کرنے کی کوشش کرتے ہیں، اس کے دماغ کو درست طریقے سے پیٹرن ڈیزائن کے بارے میں معلومات کو سمجھنے کے لیے تیار کرتے ہیں۔ پہلا باب اس بات کی وضاحت کرتا ہے کہ نمونوں کے بنیادی اصول اور وہ کن مقاصد کی تکمیل کرتے ہیں۔ سب سے زیادہ استعمال ہونے والے نمونوں میں سے ایک - حکمت عملی - آسانی سے اور بلا روک ٹوک جانچ کی جاتی ہے۔ ابواب دو سے گیارہ انفرادی نمونوں کے تفصیلی تجزیہ کے لیے وقف ہیں :- مبصر. واقعات کو ان اشیاء میں تقسیم کرتا ہے جو ان کے وقوع پذیر ہونے میں دلچسپی رکھتے ہیں۔
- ڈیکوریٹر۔ جاوا میں وراثت پر ایک اور نظر اور کوڈ میں ترمیم کیے بغیر جاوا کلاسز کو نئی صلاحیتیں فراہم کرنا۔
- فیکٹری۔ پیٹرن کوڈ کو ناپسندیدہ انحصار سے بچاتا ہے۔
- سنگل سنگلٹن کے نام سے بھی جانا جاتا ہے، یہ آپ کو پورے پروگرام کے لیے ایک کلاس آبجیکٹ بنانے کی اجازت دیتا ہے۔
- ٹیم پیٹرن آپ کو اس کی صلاحیتوں کو بڑھاتے ہوئے، طریقہ کال کو آسانی سے سمیٹنے کی اجازت دیتا ہے۔
- اڈاپٹر اور اگواڑا۔ انٹرفیس کی عدم مطابقت کے مسئلے کو حل کرنے کے ساتھ ساتھ ان کے انٹرفیس کو آسان بنانے کے لیے اشیاء کی پیکیجنگ۔
- ٹیمپلیٹ کا طریقہ۔ الگورتھمک بلاکس کا انکیپسولیشن، ذیلی طبقات کو کسی بھی وقت مطلوبہ پروسیسنگ الگورتھم کے ساتھ منسلک کرنے کی اجازت دیتا ہے۔
- تکرار کرنے والا اور لنکر۔ پیٹرن مجموعوں کے ذریعے تکرار کرنے کے لیے ایک آسان ٹول فراہم کرتا ہے، قطع نظر ان کی قسم۔ مزید برآں، باب سپر کلیکشنز کے بارے میں کچھ معلومات فراہم کرتا ہے۔
- حالت. اشیاء کو ان کی اندرونی حالت میں تبدیلیوں کے ذریعے اپنے رویے کو کنٹرول کرنے کی صلاحیت سے نوازا جاتا ہے۔
- نائب کسی چیز تک رسائی کو کنٹرول کرنے کے لیے ایک بہت ہی آسان نمونہ۔
فائدے اور نقصانات
میں، جاوا رش میں پڑھنے والوں میں سے بہت سے لوگوں کی طرح، بورنگ لیکچرز، مواد کو کچلنے اور علم کے پیاسے طالب علم کی نفسیات کے خلاف دیگر تشدد کے بارے میں سرد رویہ رکھتا ہوں۔ میری رائے میں ناقابل فہم تحریروں کو حفظ کرنے پر خرچ ہونے والی توانائی سیکھنے کے متبادل ذرائع تلاش کرنے پر خرچ ہوتی ہے۔ یہ کتاب ایک ایسی ہے جو آپ کے وقت اور کوشش کے قابل ہے۔ ایک بہترین پریزنٹیشن کا انداز، قاری کی توجہ کا قابل انتظام، اور اہم نکات کی تکرار اس کتاب کا بنیادی فائدہ ہے - مواد کی آسانی کے ساتھ ۔ عکاسیوں کی ایک بڑی تعداد ایک اضافی پلس ہے۔ میری رائے میں، کتاب میں ہر تصویر کی اپنی جگہ ہے: وہ سب آپ کو مصنفین کے الفاظ کو تقویت دینے اور مواد کے جوہر کے بارے میں گہری سمجھ حاصل کرنے کی اجازت دیتے ہیں۔ جیسا کہ میں نے اوپر لکھا ہے، یہ کتاب کوئی حوالہ کتاب نہیں ہے: اس کے مصنفین تمام نمونوں کو درج کرنے کا ارادہ نہیں رکھتے۔ اس کا بنیادی کام تفہیم فراہم کرنا اور بنیادی نمونوں کے بارے میں بات کرنا ہے تاکہ دوسرے، زیادہ پیچیدہ، کو سمجھنے میں آسانی ہو۔ اور وہ اس کا 100٪ مقابلہ کرتی ہے۔ نقصانات میں سے ایک یہ ہے کہ روسی میں ہیڈ فرسٹ ڈیزائن کے پیٹرن انگریزی میں پڑھنا اتنا آسان نہیں ہے۔ بلاشبہ، ہر ڈویلپر کو انگریزی بولنی چاہیے، لیکن نوسکھئیے پروگرامرز ہمیشہ اس مہارت کو اس حد تک ترقی نہیں دیتے کہ وہ اصل میں کتابیں پڑھ سکیں۔ تاہم، یہ ایک زبردستی مائنس سمجھا جا سکتا ہے، کیونکہ مواد بالکل درست طریقے سے پیش کیا گیا ہے اور معنی محفوظ ہے.ڈیزائن کے نمونوں پر اضافی کتابیں۔
میں اس عقیدے کا حامی ہوں کہ کئی ذرائع سے بنیادی موضوعات کا مطالعہ کرنا اور ان میں پیش کش کا مناسب انداز تلاش کرنا بہتر ہے۔ جب آپ پیٹرن میں غوطہ لگانا چاہتے ہیں اور اضافی تھیوری پڑھنا چاہتے ہیں، تو مجھ پر یقین کریں، آپ کے پاس اپنی شاموں پر قبضہ کرنے کے لیے کچھ ہوگا۔-
آبجیکٹ پر مبنی ڈیزائن کی تکنیک۔ ڈیزائن پیٹرنز (Gamma E.، Helm R.، Johnson R.، Vlissides J.)
یہ ایک زیادہ سنجیدہ اشاعت ہے، نمونوں کی ایک حوالہ کتاب، "گینگ آف فور" کی ایک بہت ہی قابل احترام کتاب ہے۔ بہت سے لوگ اسے OO ڈیزائن کی بائبل کہتے ہیں۔
انٹرنیٹ پر، ڈویلپرز کی رائے کو 3 کیمپوں میں تقسیم کیا گیا ہے:
- کچھ لوگ دلیل دیتے ہیں کہ کتاب پرانی ہے اور پیش کش کا انداز اسے پڑھنا ناممکن بنا دیتا ہے۔
- دوسرے لوگ اس کتاب کو صرف نمونوں پر ایک حوالہ کتاب کے طور پر استعمال کرنے کا مشورہ دیتے ہیں، اس سے زیادہ کچھ نہیں۔
- اب بھی دوسرے لوگ کہتے ہیں کہ یہ کتاب ڈیزائن کے نمونوں کی ہولی گریل ہے اور اسے ہر اس شخص کو پڑھنا چاہیے جو ایک دن جاوا کا سینئر ڈویلپر بننا چاہتا ہے۔
اہم:کتاب میں مثالیں C++ میں لکھی گئی ہیں۔
-
جاوا ای ای۔ پیشہ ور افراد کے لیے ڈیزائن پیٹرن (مرات ینر، الیکس فیڈوم)۔
یہ کتاب انٹرپرائز ایپلی کیشنز کے ڈیزائن کے لیے وقف ہے: اس میں حقیقی زندگی کے ایپلیکیشن کے مسائل کی بہت سی مثالیں شامل ہیں۔
-
جاوا میں ڈیزائن پیٹرن (گرینڈ ایم)۔
کتاب رنگین طریقے سے یہ ظاہر کرتی ہے کہ پیٹرن کا استعمال کس طرح ڈویلپرز کا وقت بچاتا ہے، UML زبان کا ایک جائزہ فراہم کرتا ہے، اور 47 ڈیزائن پیٹرن کو بیان کرتا ہے۔
JavaRush میں ڈیزائن پیٹرنز
JavaRush کورس میں، جاوا کلیکشن کی تلاش کے لیول 7 پر ڈیزائن کے نمونے سیکھے جاتے ہیں۔ لیکچر 1 اور 2 سب سے عام نمونوں کے لیے وقف ہیں، اور لیکچر 4 میں آپ اس موضوع پر مسائل حل کر سکتے ہیں۔ ذیل میں "خود کو مضبوط بنانے" کے لیے کچھ دلچسپ مضامین ہیں:-
نمونوں کے عنوان پر ایک عمومی مضمون زمرہ جات، مثالوں، ہر چیز کے ساتھ جو ہمیں پسند ہے۔
-
سنگلٹن پیٹرن کو بطور مثال استعمال کرتے ہوئے پیٹرن ڈیزائن کریں ۔
-
ڈیزائن پیٹرن کا تصور UML ڈایاگرام سے متعلق ہے، یہ مضمون آپ کو یہ سمجھنے میں مدد کرے گا کہ وہ کیا ہیں۔
GO TO FULL VERSION