Course Hive
Search

Welcome

Sign in or create your account

Continue with Google
or
Null Object Pattern | Anti-Patterns in System Design
Play lesson

System Design Full Course - Null Object Pattern | Anti-Patterns in System Design

5.0 (4)
27 learners

What you'll learn

This course includes

  • 34.3 hours of video
  • Certificate of completion
  • Access on mobile and TV

System Design Full Course Null Object Pattern | Anti-Patterns in System Design

Null Object Pattern | Anti-Patterns in System Design Transcript and Lesson Notes

حنجی تو کرے شاٹ، Welcome Back Coater Army ہماری سللڈی کی سیریز میں اور آج ہم بہت چھوڑے چھوڑے توپیکس کے بارے میں دیسکس کرنے والے جو ابھی تا کے سیریز میں میں دیسکس نہیں کیے تھے ابھی تک ہم دیزائیں پیٹنس پڑے تھے آجہم پڑے گے انٹی پیٹنس کیا ہوتے دیزائیں انٹی پیٹنس اور

Quick Summary

حنجی تو کرے شاٹ، Welcome Back Coater Army ہماری سللڈی کی سیریز میں اور آج ہم بہت چھوڑے چھوڑے توپیکس کے بارے میں دیسکس کرنے والے جو ابھی تا کے سیریز میں میں دیسکس نہیں کیے تھے ابھی تک ہم دیزائیں پیٹنس پڑے تھے آجہم پڑے گے انٹی پیٹنس کیا ہوتے دیزائیں انٹی پیٹنس اور

Key Takeaways

  • Review the core idea: حنجی تو کرے شاٹ، Welcome Back Coater Army ہماری سللڈی کی سیریز میں اور آج ہم بہت چھوڑے چھوڑے توپیکس کے بارے میں دیسکس کرنے والے جو ابھی تا کے سیریز میں
  • Understand how null fits into Null Object Pattern | Anti-Patterns in System Design.
  • Understand how object fits into Null Object Pattern | Anti-Patterns in System Design.
  • Understand how pattern fits into Null Object Pattern | Anti-Patterns in System Design.
  • Understand how anti-patterns fits into Null Object Pattern | Anti-Patterns in System Design.

Key Concepts

Full Transcript

حنجی تو کرے شاٹ، Welcome Back Coater Army ہماری سللڈی کی سیریز میں اور آج ہم بہت چھوڑے چھوڑے توپیکس کے بارے میں دیسکس کرنے والے جو ابھی تا کے سیریز میں میں دیسکس نہیں کیے تھے ابھی تک ہم دیزائیں پیٹنس پڑے تھے آجہم پڑے گے انٹی پیٹنس کیا ہوتے دیزائیں انٹی پیٹنس اور ہم دیکھیں گے کہیں نل آبچک پیٹن کیا ہوتے یہ بھی ایک بہت چھوڑے تھا دیزائیں پیٹنے تو چھوڑوں اسکرین پے تو دیکھوں ابھی تکنا ہم نے کیا کیا پہلیا تھا ہم نے سالیڈ پرنسپلس پڑے تھے سالیڈ پرنسپلس ہمیں بہت ہوا یہ پرنسپلس ہے جو گوان کرتے ہیں کہ آپ کا جو کوڑ ہے وہ تائیت لیک کپلڈ نہ ہو پر ہمیں یہ بھی پڑا تھا کہ ہاڑا اور فاس رول نہیں ہے کبھی قبر ہمیں ترید افسلینے پڑھے ٹیک ہے کچھ روز پڑھے کرنے پڑھے تاکہ ہمیں اپلکیشن تھوڑی سیمپلر ہو جی رہیت کامплекс نہ لگے اس کے علاوہ ہم نے کیا پڑے تھے دیزائیں پیٹنسپڑے تھے اور ہمیں لگا بہیں یہ تو سالیوشن ہے ہر چیس کا ہے نا دیزائیں پیٹنسی ایس کرو جا ہمیں کوئی پرولم میں ہم پھسے اس کا اولڈی اگزیسٹنگی دیزائیں پیٹنسپلس پڑھے ہوں گا اس کو ایس کرلو بلکل سئی پر اب ہمیں ایک دسکس کر رہے ایک اوٹوبیک کے علاوہ میں جس کا نام ہے اینڈی پیٹنس ایسی چیزے جو آپ نے کوڑھے گلتی سے کر دے دے ہو جس کی وجہ سے آپ بات میں پروبلوم ساتی ہیں تو ایک ایک کر کے کوئی پیٹنس جو موست پپولر اینڈی پیٹنسے وہ دسکس کر دے تو سب سے پہلے ہمیں پاس ایک اینڈی پیٹنس جسے ہم بولتے ہیں گوڑ آبجیکٹ ہوں سکتا آپ نے اس کے علاوہ اگر آپ کے پاسے کیسی کلاس ہے یا ایسا آبجیکٹ ہے جس میں نے آپ نے بہت ساری رسپونسیبلٹیز دی دی تکے شئے سے مان لو فر ایک بہت سی کلاس ہے ایک تکے اسکم سی سے بناتے ہیں تو ایمیجن کرو کی آپ کے پاس ایک کلاس ہے ایک تکے اور یہ نا ایک بہت ساری میتھڈ کو حندل کر رہے اس کے پاس ایم اینڈی پیٹنسے ایم اینڈی پیٹنسے بہت ساری بہت سارے بہت سارے تو ایم اینڈی پیٹنسے ایم ٹھو گیا ایم ٹھو گیا بہت سی کلاس تو اسکرنا میں گوڑ آبجیکٹ بھولدتے ہیں مطلب ہماری اپلیکیشن کنیک سنترل ہب بن گیا ہے موست اوپرے ایسکے اس کے پر ہوتے ہوئے جاتے ہیں یا اس کے پر ہوتے ہیں رائید اس وجاز سے کیا ہوتے ہیں کہ اماری پوری کی پوری کی اپلیکیشن اینا وہ اس ایپے بہت تیٹلی قبل ہو جائے گی بہت دیپینڈ کلکوگر اس ایمے کوئی بگ آ گیا تو ایماری پوری اپلیکیشن فیل ہو جائے گی ہے نا تو یہ پر بھولا موتی ہے گوڑ آبجیکٹ کی کہ آپ نے ایک کلاس کو بہت اپر کا درجاتی دیا اسے گوڑ بنا دیا اسم اتنسہ کاملی ساری کاملیکس چیزوں کو ایک کلاس میں ہندل کر دیا جو گی ہم چاہدنے کیا ہم اس کو ہر کس میں اووائید کرے ہے نا اب آپ کے منم کوئیشن نارہ ہوگا کہ بہیہ ابھی دیکھا ہم نے جتنے بھی اس پوری کی بوری سیریز میں پروجیکس کیے اس میں سے کئیوں میں ہم نے ایک میں اورکیشٹریشن اپجیکٹ رکھا تھا کیا وہ گوڑ اپجیکٹ ہے اس کے دیکھا دو آنسر سے دیپین کرتے کییاftے کیا وہ خود سے بہت سے ہندل لیکن نہیں کر رہا کیا وہ אیگڑ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ یہ تو ہمیںше ہم کوشش کرتے ہیں کہ ہمارے جو آرکیستریشن آبچیکٹ ہے اسکமھ سمپل رکھیں کہ وہ دلگیٹ کرنے کا گاہم کریں اور میں آپ کو یہی باتا ہے کہ دیارہ علٹرنیٹی وオپشنز آلسوں اگر آپ چاہتے ہو کہ آپ کا جو بھی کلایٹ ہے وہ کوئی ایک آرکیستریڈ کلاس پے دیپینڈ نہ ہو جائیں تو آپ کیا کرسکتے ہو اس کو دیسٹری بیٹ کرسکتے ہو اللہ کلاسس میں لیکن فر کلایٹ کی رسپنسی بھی ہوجائے گی ہمیں جو کلایٹ بیٹھا ہوگا کہ اس کو پتہ ہونا چی اللہ کلاسس سے کیا کیا لیکے آنے اور کیسے کیسے پوری کی بری اپلیگیشٹ کو کول کرنے اس لیے سمپلی سیڈیگ لی ہمیں کارکیستریشن آبچیکٹ بناتے تھے جس کوھمھ فساد بول سکتے تھے لیکن اگر آپ کو اسکہ ایک سیپسیپکھ سلیوشن جیو جو بیسٹ سلیوشن ہو پاپتے کیا کہ ہوگی آپ اپنے انٹرவیر کو باتا ہوگے کہ ہمارے پاس جو کلایٹ ہے اور ہمارے پاس جو آرکیستریشن آبچیکٹ ہے وہ اس طرح کا آبچیکٹ ہے کی وہ خود سے چیزوں کو ہندل نہیں کرتا بلکی چیزوں کو دلگیٹ کرنے کا گھا ہم کرتا ہے باکی آبچیکٹس پی یعنی کی وہ ہمارا گوڑ آبچیک نہیں ہے Right سبکوچ اس کے اراؤن نہیں گھومتا Yes یہ آپ منصکتے وہ سنگل انٹری بونٹ ہے یہ آپ کو باتا ہے اس کا بہت اچھ ایک زمپلگر میں آپ کو باتا ہو تو اگر آپ نے API Micro Service Architecture وگرے کے بارے میں بات بھی پڑا ہے آپ کو back-end کے بارے ایڈیا ہے تو آپ کو بتا ہے ہمارے پاسے کنترولر لیر ہوتی ہے Spring Boot میں یا کسی میں بھی ہمارے پاسے کنترولر لیر ہوتی ہے جس میں ساری API اس دیفائیں ہوتی ہے اس کے End Points Define ہوتی ہے تو وہ بھی تو ایک سنگل انٹری 포인ٹ ہوتی ہمارے اپلیگیشن کا Right یعنی کے لیٹسے ہم نے کہا V1 Slash Add User تو یہیک API ہوجی یعنی V1 Slash Remove User یہ دوسری API ہوجی V1 Slash Delete User یعنی Delete تو نہیں چلو رو ریموی ہے Update User یہ تیسری API ہوجی تو یہ API calls کیا کر رہے ہیں ایک پڑٹیگلر کنترولر میں جاتی ہے جو کی طرح ایک طرح سے ہمارا اور کسٹیشن کلاس ہوجی اور پھر وہ الگ سرவیس لیر کے آبجیکس کو call کر دی ہو گی یعنہ تو یہاں پہ ایک طرح سے فرق آ جاتا ہے کیا گوڑ آبجیکٹ ہے اور کیا گوڑ آبجیکٹ نہیں کبھی قبار یہ فرق آپ کو اچھے سے دفائین ہو گا کیاں دیکھو یہ جو آپ نے اپنے آبجیکٹ ہے اور کبھی قبارنا وہ بہت سٹل ہو گا آپ کو ایڈنٹی فائ کرنا ہوگا کہ گلتی سے میری کوئی کلاس کوئی گوڑ آبجیکٹ تو نہیں بنرییا تو یہ ہے پہلا اینٹی پیٹن اس کی علاوہ ایک دوسری اینٹی پیٹن دوسکہ کرتے ہیں جو کی اور بھی کامنے وہ ہے SPEGETICOAD اب یہ کیا ہے SPEGETICOAD اپنے COAD کو اتنا комплектیڈ کر دے نہ تو اس میں کوئی اینٹری پائیںٹ ہو نہ تو اس میں کوئی آپ اینٹری پائیںٹ ہو نہ تو اس میں کوئی ایک زیٹ پائیںٹ ہو بہت کچھ بہت کچھ کچھ بہت کچھ komplیگریٹی دورکھا ایک زیمپل آپ کے پاس لٹسے ملٹیپل کلاسیز ہے اور اس میں آپ کو کوئی کوئی سیکن پرونٹو ارر ہو جائے گی یہ تو آپ کو سمجھای را ہوگا یعنہ اس میں بہت سارے ارر سانے گے چانسیز ہوگے یہ ہے آپ کا دوسری طرح کی کہ دیزائین اینٹری پائٹنس جو آپ شاہد اپنے اپلیگریٹے میں انٹریوڈیوڈ کر لے تھی اور آپ کو پہتہ نہیں چلتہ اور بعد میں آپ کو بہت پر بلام ساتی ہے چلو اب ایک بڑڑسکت کرتے کلکہ چینج ہوگی تو اس کو بھی ہم ایوڈ کرنا چاہیے جنڈری ہمیں کیا پرفر کرنا چاہیے ایسی کوئی بھی چینج ہوگی تو پرمیٹر گے تھرولے یا کسی کنشٹنس کے تھرولے کسی کنفیگریشن کے تھرولے این جنڈرل ہادコード کو جتنا ایوڈ ہوصا کے کرنا چاہیے اونی گیسیز میں کرنا چاہیے آپ کو پتہ ہو یہ ویلوز دوبارا کبھی چینج نہیں ہونے والے کلکہ دیس گولڈ پلیٹنگ اور اس کا دوسرا نام ہے Over-Engineering یہ اون لوگوں کے لئے جو پر فیکشنیست بنتے ہیں اگر آپ کو چاہیے آپ کی اپلیکشن ایک دم پر فیکٹو آپ سارے دیزائیگ پیٹنز کوچھے سے ایوڈ کرو سارے پرنسیپلس کو ایوڈ کرو سارے اوپس کے کنسیپس کوچھے سے لگا دو تو آپ ایک ایسی اپلیکشن بناد ہوگے جو ہم کہیں گے Over-Engineered ہوگئیے کیا ہوتا ہے Over-Engineered ہونہ آپ ایسے منگے چاہو کہ آپ کچھ ایسے کسیس کو ہندل کرو جو گا بھی ارائیزی نہیں ہوگے آپ ایسے منتے ہو کہ کوئی بھی الگواریتا میں نہ آپ ایک strategy کے thinnoolے کریں گے strategy ہوگئی اور اس کے پاس اپنی concrete strategy ہوگئی ایسے نا سم کرتا ہے strategy design pattern میں پر آپ ہوگئے لگتا ہے کہ ہر چیس چیج ہوگئی strategy design pattern میں نے ایسکس کیا تھا Change what varies جو بار بار Change را دہاں ہر چیس کا strategy بنانا را دہاں ہر چیس کا strategy بنانا اس سے اپ کیا کر ہوگئے اپنے code کو Over-Engineered کر دوگئے Over-Complicated کر دوگئے تو یہ ہے gold plating or Over-Engineering ہر چیس میں زادا ایسے سینیریس کو سوچ لینا جو کبھی ہونہی نہیں والے فیوچر میں کبھی آنہی نہیں والے چیگے تو یہ بھی آپ کو ایویڈ کرنا چیس جیتنا ہو سکے چیگے اگر امبڑے اپنے نکسٹ انٹی پیٹن کی طرف اگر آپ بہتی سمپلے اگرے پیٹن کا نام ہے dry اس کی فورفام کیا ہوتی ہے do not repeat yourself چیگے یا اپنے کئی بار سنو ہوگا کئی بار آپ کیا کرتے ہو اپنے code کو کوپی بیست کرنے لگ جاتیو ایک میتر سے دوسرے میتر میتر سے دوسرے دوسرے سے دوسرے میتر میں رائٹ اس کے اس میں کیا ہوتے آپ کے پاس لیٹسے ایک میتر ہے امبڑ اس میں کچھ کوڈ لکھا ہے ایسے ایک میتر ہے امتو اس میں کچھ کوڈ لکھا ہے اور آپ کو پتے امبڑ کا code όل مو سیم امتو کی code سے تو اپنے ہاپنے اوٹاکی سے کوپی بیست کر لیا سیم اپنے امتری میکڑ لیا اسے کیا اور اپتے ہیں آپ do not repeat yourself principle کو BREAK کر رہےo اب بار بار repeat repetition کو لے کر کیا رہےo اسے دکت کیا ہوگی کل کو اگر یہ پورا کا پورا logicی بدال جائیں تو آپ کو ہر method میں جا کر گے وہ change کرنا پڑے گا تو generally mk prifer کرتے ہیں جو بھی repeated code ہے اسے بہار نکالو اور اس کو ایک الغ logic بنادو اس کو ایک utility class میں رکھ دو یہ ایک الغ method میں رکھ دو اس کو ایک الغ class میں راال دو ایک الغ ایرار کی میں دال دو تاکی m1 m2 m3 sida اس کو directly use اس کو اس کو اس کو ایک anti-battern اس کے لابا دو چھوڑے چھوڑے anti-patterns اور ہے ایک ہے آپ کا pre-mature optimisation pre-mature optimisation یہ کہتا ہے ki upne code کو optimise کرنا بعد میں 시작 کرنا make it work اس کے لیکن htk make it work then make it fast یہ یہ آذرتنا پہلے آپ کی application جو کرنے کیا intended پہلے work and then make it fast آپ بعد میں optimise کرنا اس کا بہت اچھا ایک ایک بروٹ فور سے approach کو لے کر کیا آپ کو saat کو aadar of n-square complexity آپ کو aadar n-square msko n-log n-mibhi using some better approaches یہ approach بعد میں optimisation pre-mature optimisation کیا ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک Inheritance Overuse t-gay ہم نے اس کے بارے بات کیوں یہ کیا why inheritance is bad ہے نا inheritance کیا problem koskartai multiple inheritance hierarchy آپ کا کوڑے بہت complicated ہم نے strategy pattern use right visitor pattern use or birich pattern use which our inheritance hierarchy کو ہم کم کر this inheritance کو کم sakes we have always tried inheritance to use abstract class and the concrete implementation has a relationship to use it so this is an antipatterns so we have total no antipatterns ok, ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک ایک پات ٹو میں مجھے آپ کیسا دسکس کرنا ہے ایک بہت ہی چھوٹا پر بہت ہی کام کاディزائیں پیٹن یہتے ہیں چھوٹے دیزائیں پیٹن آپ کو لگے گئے گئے بھئی اس کا کامی کی ہے پر بہت ہی کام کا ہے جس کا نام ہے نل آبجیکٹ پیٹن اور میں آپ کو پروف کروں گا کہ ہم نے اس کو اولڈی ایگئے کیا کئی بار دیکھو نل آبجیکٹ پیٹن نام سے آپ کو بتاتاتے ہیں کی کیا کرنا ہے کچھ مہتھڑھی اور آپ چاہتے ہوگئے ان مہتھڑس کو يسکھرنا پر آپ دیگتا لگئے اس کو دیکھا لگئے او بھی این دوٹ ام بن اور او بھی این نل آبجیکٹ پر تو نل پوینٹ رکسپشن آجائے گا تو ہمیشا کیا کرنا بڑھتا پوچھا کرنا بڑھتا کی او بھی این نل تو نہیں ہے اس کو او ایووائیڈ کرنا ہے کہ ریزن بس یہ ہوتا ہے پہلا ہو سکتا بھیا کئی بھول جاو لکھنا اور سیدہ OB1.M1 فیچ کر لو یا فیر لٹ سے آپ نے OB1 کیسی کو پیرامیٹر میں دیا تو لٹ سے کوئی میتھا ہے لٹ سے فن کر کے کوئی میتھا ہے وہ OB1 از آرکیمینٹ لیتے ہیں تک ہے اب وہ بھول گیا ki muxi check کرنا کی OB1 null تو نہیں اسے checked ni kya سیدہ OB1 پے M1 method call کر دیا اور OB1 ا کر nalaیا ہوگا تو null pointer exception aagye ki یہ دکتا ہے رائٹ تو یہ تو گئی پہلی دکت اب دوسری دکت بل کی وہ دکت نہیں ہے آپ اس کو ایسے سمجو ki پورے کی بری اوپس کی لگویج میں ہم ہمیں سا کیا پرفر کرتے ہیں ki replace conditionals with polymorphism ہمہاں ہی کوشش تو یہی رہی ہے کیا مکم سے کم conditionals straightments use kare as he fails wali اور اس کو polymorphism سے replace kare nai ki کوشش کریں۔ مطلب polymorphism آپ کو پتے ہیں کہ ہم کیا بنا ہے ایک بیس کلاس اور اس کی ملٹیپل سب کلاسے ہو رائٹ اور وہ اس کو override kare اور اس طرح ہم کام کریں تاکہ ہمیں بس OB1.M1 call کرنا ہوں اور ہمیں نہیں پتا کونس or OB1 یا پاس ہوئے یہ والا OB1 یا یہ وال OB1 رائٹ اس طرح کوشش کریں ہم تاکہ میں بار بار افنا لکنا پڑے IF OB1 یہ ہے تو یہ call karo ELSE یہ call karo تو اسی کو ایس کر کے ہم null object pattern کو انٹڈیوز کرتے ہیں تاکہ آپ کو بار بار یہ OB1 equal null کہیں نہ کہیں نہیں check نہ کرنا پڑے رائٹ اب دیکھو یہ null object pattern کیا کہتا ہے بہت simple یہ کہتے ہیں کہ آپ کے پاس نہ کوئی بھی ایک اپسٹٹ class ہے اپسٹٹ class ہے یانی کی یہ اپسٹٹ لک کے تو اپنی یہ لکتے ہیں اور آپ کے پاس اس میں کوئی Method ہے M1 simple sorry یہ پہیں دکلیر نہیں ہوگا کہ اپسٹٹ ہے تو آپ اس کو دفین کر دے تھی لیٹھ سے M1 چی گیا آپ کے پاس کیا ہوگا ایک Concrete class بھی ہوتی ہوگی اپسٹٹ class کی جس کو بولتے ہوگے کچھ Concrete class اور بھو کیا کرتی ہوگی اپسٹٹٹ class کو انہیڈ کرتی ہوگی تو اس کے پاس بھی M1 Method ہوگا جس کو وہ overwrite کرے گی simple تو null object pattern یہ کہتا ہے آپ ایک اور کام کرنا یہاں پے اس کس میں ایک اور طرقہ اینہیڈینز بنادو اور ایک نیا آبچیک بنادو جس کا نام آپ رکھ دو null object null object اب یہ null object پتے کیا یہ ایک ایسی class ہے جو کچھ نہیں کرتی بیسیگلی اس کو بھی ایس کو بھی M1 Method overwrite کرنا پڑے گا write کیا اس کو انہیڈ کر رہے تو یہ اپنے M1 Method میں پتے کیا لک دیتی ہے یہاں پے not here sorry اپنے M1 Method میں پتے کیا لک دیتی ہے یہ لک دیتی ہے لیٹھ سے Mt ھوڑ دیتی یہاں تو let's say STA Mt یہاں پھر return گڑ دیتی ہے کوئی default value کیا کیوں گڑ دیتی ہے تاکی کبی بھی کوئی بھی Client let's say یہاں پیارپے آپ کے پاس ایک sorry let's say یہاں پیارپے آپ کے پاس کو Client ہے جو اپ کی اپلیکشن کو use کرنا چاہتے ہیں اپلیکشن کو use کرنا چاہتے لگا اس کے پاس اس اپسٹر class کے referents ہوتا ہوگا اس کے پاس بھی ایک method ہوتا ہوگا let's say method کا نام ہے فند اس کے پاس ایک method ہے let's say fund اور یہ fund کیا کرتا ہوگا internally جا کر کے اگر امین اس فنشن کو خول کے دیکھے یہ call کرتا ہوگا یہ Client اس کے پاس reference abstet class یہاں پہ میں لیکھنی تو پر آپ لیکشن کو اس کے پاس ایک reference abstet class کرنا پڑھتا if AC equal equal null پر آپ کو نہ وہ چیک کرنے کی ضرطی نہیں ہے اب دھان سے سوچوں اب آپ کو یہ if AC equal equal null چیک کرنے کی ضرطی نہیں ہے کیونکی اگر یہ null ہوگا مطلب بیسکلے میں کہنا چاہتا ہوں جب بھی مجھے اس اپسٹٹلس میں کچھ نہیں دینا ہوگا تو بھی میں ایک null object دے دوں گا را در دن null میں ایک null object دے دوں گا یعنی کی Client کے پاس چاہیں کنکریٹ class کی رہے چاہیں null object کی رہے اب یہ اس فن پے بسی اگر یہ AC dot m1 کرے گا اور اس کے پاس reference 1 null object کا کوئی بات نہیں m1 guna null object کی رہے کچھ نہیں کرے گا m2 رہے گا کم سے گم کوئی error throwny ڈا ایک سپچھن throwny ڈا بسیکلی list of substitution principle BREAKNY ڈا تو یہ ہے SIMPLE SINAL object pattern کہ ہمئیشہ جو بھی آپ کی کنکریٹ class ہو اس کے علاوہ ایک null object بھی رکھلو جو یہ تو کچھ بھی return ڈا نگرے گا یا فی default value return ڈا جیسے default 0 return 0 یا return ڈا کوئی کالی string ڈا وگرہ وگرہ گرہی تو بسیکلی اس کا یہ مطلبوہ کہ ایک null object کیا کرے گا وہی کام کرے گا جو null کرتے ہیں but actually null error throw ڈا ایک سپچھن throw ڈا کیا اس کے انتر کوئی reference 1 null کیا آپ کے پاس ایک reference ہے لیکن here AC AC پڑی کسی کو point نہیں کرتا ہیپ memory ایسے کوئی جگا نہیں ایسے کو object نہیں جس کوئی point دنگلگ point کیا آپ کوئی null object رکھلو یہ جو AC یہ heap کسی object کو point ضرور کر رہے but object اندر سے کچھ نہیں کر رہا وہ کھا لی object ہے کہ کم سے کم میں AC کوئی ایک اور ہم نے کیا کہا تھا اس fly strategy کیا طریقے ایلا گلک ہو سکتے Different کیا ایڈان ہو سکتے ایک robot کر سکتے fly with wings اور ایک تھا fly with jet ایلا گلک طریقے تھے پر میں کہا رہوں ایسے بھی تو robot ہوتے ہوں گے جورتے ہوں گے تو کیا ہم اس کے اس میں یہاں پہنل دلگے بسی کلی ہمارے پاس i robot کے پاس i fly strategy کا ایک object ہوتا ہوں گا ایسے ایس اور میں چاہتا ہوں مجھے اس اس میں یا تم ایسے fly with wings رکھوں یا fly with jet رکھوں پر مالو میرا robot دورتا ہی نہیں ہے تم ایسے میں کہا نلس چور کر دو نہیں ہم نے کیا تھا ہم نے ایک ایسے ایسے کا نام تھا No fly No fly behaviour اور جب وہ fly method کو اووورڈ کرتا تھا تو ایسا رہے fly کو اوورڈ کرتے ہوگے رہے سا رہے fly کو اوورڈ کرتے ہوگے تو جب یہ fly کو اوورڈ کرتا تھا تو یہ fly کو اوورڈ کر کے بدا کرتے گے کرتا تھا کچھ بھی نہیں کرتا تھا empty empty ھوتا تھا Right یہ empty کیوں رکھتا تھا تاکی قل کو اگر ایس robot میں S.fly کوئی call کر دے اور اس fly میں اس S میں اگر No fly behaviour pas ہو تو کچھ نہ ہو نہ تو ایک سپشند رو نہ ہی کچھ کوئی code فٹے Right اور آپ کو باربا نلس چکھنا کرنا پڑے مجھے یہ نہ چکھنا پڑے ایسے ایکل ایکل نل اس کے لابا ہماری کمان design pattern کی video اگر آپ نے کمان design pattern دیکھا تھا تو ہم نے جو remote control بنایا تھا اور ہم نے کہا تھا اینیشل اس میں جتنے بھی button سے ہم اس کو ایک کمان دیں گے جس کا نام ہوگا No command No command مطلب کوئی کمان کرنی نہیں ہے اس کو آپ button باؤگے کچھ نہیں ہوگا پر کچھ فٹے گا نی کو ایک سپشند رو نہیں ہوگی No command بھی ایک کمان ٹائپ کو اپجیک تھا ہم نے دیا دا دا دسکس کیا تھا کچھ کنکریٹ کمان دہا ہوں سکتے کنکریٹ کمان دہا پر ایک اور کمان دہا ہوں سکتے ہیں جس کا مطلب ہے No command ٹیک ہے No command اگر اس کے پاس کوئی مدھا گا M1 تو اس کو overwrite تو کرے گی پر یہاں پر کچھ نہیں کرے گی کوئی کام نہیں کرے گی MT تاکھ آپ کا code نہ فٹے تو جو بھی اس کمان دہا ہوں ہوں اس کے چیکنہ پر کرنا پڑے لیکن لیکن if command COM equal equal null ہے کیا یہ نہ کرنا پڑے وہ سیدہ اس کے مدھل کو کال کر پائے تو میں نے command design pattern میں بھی اس کا ایس کیا تھا تو ایسے ہر resign pattern میں نہ آپ null object pattern کو گھوصا سکتے ہو جب بھی آپ کو پتے ہیں کہ آپ کا object null ہو سکتے تو ایک کام کرو وہاں پہیں no command یا پھر no fly behaviour یا اس طرح کا null object کہا پہنے تھاں نے یہاں یہاں اس طرح کا ایک null object اب پاس کر دو ٹیک ہے تاکھ آپ کے code میں کبھی بھی آپ کو IF SOMETHING EQUAL EQUAL NULL یہ والا چیک نہ کر نہ پڑے یہ والا چیک کو ہمیں سے اویڈ کر نہ پڑے تو یہی ہے null object patterns اس کے لئے ہم نے اس βیڈوں میں دیکھا anti patterns con con سے ہوتے ہیں اور اس پوری سیریز میں ہم نے سارے design pattern دیکھیں خاص کر سپسے زادہ جو یوز ہوتے ہم نے اچھے سے کام کیا ان کے ایک زیامپلس کیے اور ہم نے بہت سارے projects بھی بنائیں اب ہمیں سیریز کو конکلوڈ کرتے ہیں اس βیڈوں میں نہیں آپ سے ملتے ہیں کسی اور سیریز کی کسی اور βیڈوں میں تبتاکہ لئے THANK YOU SO MUCH

Lesson FAQs

What is Null Object Pattern | Anti-Patterns in System Design about?

حنجی تو کرے شاٹ، Welcome Back Coater Army ہماری سللڈی کی سیریز میں اور آج ہم بہت چھوڑے چھوڑے توپیکس کے بارے میں دیسکس کرنے والے جو ابھی تا کے سیریز میں میں دیسکس نہیں کیے تھے ابھی تک ہم دیزائیں پیٹنس پڑے تھے آجہم

What key concepts are covered in this lesson?

The lesson covers null, object, pattern, anti-patterns, system.

What should I learn before Null Object Pattern | Anti-Patterns in System Design?

Review the previous lessons in System Design Full Course, then use the transcript and key concepts on this page to fill any gaps.

How can I practice after this lesson?

Practice by applying the main concepts: null, object, pattern, anti-patterns.

Does this lesson include a transcript?

Yes. The full transcript is visible on this page in indexable HTML sections.

Is this lesson free?

Yes. CourseHive lessons and courses are available to learn online for free.

Continue Learning

Course Hive

Continue this lesson in the app

Install CourseHive on Android or iOS to keep learning while you move.

Related Lessons

FAQs

Course Hive
Download CourseHive and keep learning anywhere
Get App