OOP میں Abstraction: پیچیدگی کو چھپانا

آپ چند سادہ اقدامات کے ذریعے کار چلاتے ہیں۔ آپ ریس (gas pedal) دباتے ہیں۔ آپ اسٹیرنگ گھماتے ہیں۔ آپ بریک لگاتے ہیں۔

آپ کو یہ جاننے کی ضرورت نہیں ہے کہ ایندھن انجن میں کیسے داخل ہوتا ہے۔ آپ کو یہ سمجھنے کی ضرورت نہیں ہے کہ پسٹن کیسے حرکت کرتے ہیں یا گیئر کیسے بدلتے ہیں۔ کار ان تفصیلات کو آپ سے چھپا لیتی ہے۔ آپ ایک پیچیدہ مشین کو کنٹرول کرنے کے لیے ایک سادہ انٹرفیس (interface) استعمال کرتے ہیں۔

سافٹ ویئر بھی اسی طرح کام کرتا ہے۔

ای میل بھیجنے کے بارے میں سوچیں۔ آپ صرف ایک کمانڈ کال کرتے ہیں: emailService.send()۔

پسِ پردہ، بہت سی چیزیں ہوتی ہیں:

آپ کو ان مراحل کو دیکھنے کی ضرورت نہیں ہے۔ آپ کو صرف اس بات سے مطلب ہے کہ ای میل چلی جائے۔

اگر آپ Abstraction استعمال نہ کرتے، تو آپ کا کوڈ کچھ ایسا ہوتا:

ہر بار ایسا کرنے سے مسائل پیدا ہوتے ہیں۔ آپ کے کوڈ کا ہر حصہ بہت زیادہ تفصیلات جانتا ہے۔ اگر آپ اپنا ای میل فراہم کنندہ (provider) تبدیل کرتے ہیں، تو آپ کو کوڈ کی ہر اس لائن کو اپ ڈیٹ کرنا پڑے گا جو میل بھیجتی ہے۔ آپ کا سسٹم تبدیل کرنا مشکل ہو جاتا ہے۔

Abstraction