Has-a
ڈیٹا بیس ڈیزائن میں، آبجیکٹ پر مبنی پروگرامنگ اور ڈیزائن، ہے-اے (ہے-اے یا ہے-اے) ایک ساخت کا رشتہ ہے جہاں ایک آبجیکٹ (جسے اکثر تشکیل شدہ آبجیکٹ، یا حصہ/جزو/ممبر آبجیکٹ کہا جاتا ہے) "سے تعلق رکھتا ہے" (حصہ یا ممبر ہے) دوسرے آبجیکٹ (جسے جامع قسم کہا جاتا ہے)، اور ملکیت کے اصولوں کے مطابق برتاؤ کرتا ہے۔ آسان الفاظ میں، کسی شے میں ہے-ایک تعلق کو کسی شے کا ممبر فیلڈ کہا جاتا ہے۔ ایک سے زیادہ تعلقات ایک ملکیت کی درجہ بندی بنانے کے لیے یکجا ہوں گے۔ متعلقہ تصورات "ہس-اے" کا موازنہ ایک اس-اے (اس-اے یا اس-اے) رشتے سے کیا جانا چاہیے جو ایک درجہ بندی کی درجہ بندی (ذیلی ٹائپنگ) تشکیل دیتا ہے۔ یہ فیصلہ کہ آیا کسی شے اور اس کے ماتحت کے لیے سب سے زیادہ منطقی تعلق ہمیشہ واضح طور پر-a یا-a نہیں ہوتا ہے۔ اس طرح کے فیصلوں پر الجھن نے ان دھاتی لسانی اصطلاحات کی تخلیق کو ضروری بنا دیا ہے۔ ہایس-اے رشتے کی ایک اچھی مثال سی + + ایس ٹی ایل میں موجود کنٹینر ہیں۔ تعلقات کا خلاصہ کرنے کے لیے، ہمارے پاس ٹیکسونومک درجہ بندی کی وضاحت کرنے والی اقسام (کلاسز) کے درمیان ہائپرنیم-ہائپونیم (سپر ٹائپ-سب ٹائپ) تعلقات ہیں، جہاں وراثت کے تعلق کے لیے: ایک ہائپونیم (سب ٹائپ، سب کلاس) کا ایک ٹائپ-آف (is-a) اس کے ہائپرنیم (سپر ٹائپ، سپر کلاس) کے ساتھ تعلق ہوتا ہے۔ ہولوم-میرونم (مکمل/ہستی/کنٹینر-حصہ/جزو/ممبر) اقسام (کلاسز) کے درمیان تعلقات جو ایک ملکیتی درجہ بندی کی وضاحت کرتے ہیں، جہاں ایک جمع کے لیے (یعنی۔ ملکیت کے بغیر) تعلق: ایک ہولم (مکمل) کا تعلق اس کے میرون (حصہ) کے ساتھ ہوتا ہے، ایک ترکیب کے لیے (یعنی. ملکیت کے ساتھ) تعلق: ایک میرا نام (جزو) کا اس کے مقدس نام (وجود) کے ساتھ ایک جزوی تعلق ہوتا ہے، ایک کنٹینمنٹ تعلقات کے لیے: ایک میرا نام (رکن) کا اس کے مقدس نام (کنٹینر) کے ساتھ ایک ممبر کا تعلق ہوتا ہے۔ تصور-آبجیکٹ (ٹائپ ٹوکن) اقسام (کلاس) اور اشیاء (مثالوں) کے درمیان تعلقات، جہاں ایک ٹوکن (آبجیکٹ) کا اس کی قسم (کلاس) کے ساتھ ایک مثال کا تعلق ہوتا ہے۔ مثالیں ہستی-رشتہ ماڈل ڈیٹا بیس میں ہے-ایک تعلقات عام طور پر ہستی-تعلق ماڈل میں پیش کیے جاتے ہیں۔ جیسا کہ آپ دائیں طرف کے خاکہ سے دیکھ سکتے ہیں کہ ایک اکاؤنٹ میں متعدد حروف ہو سکتے ہیں۔ اس سے پتہ چلتا ہے کہ اکاؤنٹ کا کردار کے ساتھ "ہے-اے" تعلق ہے۔ یو ایم ایل کلاس خاکہ آبجیکٹ پر مبنی پروگرامنگ میں اس رشتے کو یونیفائیڈ ماڈلنگ لینگویج کلاس خاکہ کے ساتھ پیش کیا جا سکتا ہے۔ اس تعلق کو کمپوزیشن کے نام سے بھی جانا جاتا ہے۔ جیسا کہ آپ دائیں طرف کے کلاس خاکہ سے دیکھ سکتے ہیں کہ ایک کار "ہے-اے" کاربوریٹر، یا ایک کار کاربوریٹر پر مشتمل ہوتی ہے۔ جب ہیرے کا رنگ کالا ہوتا ہے تو یہ ساخت کی نشاندہی کرتا ہے، یعنی۔ ہیرے کے قریب ترین طرف کی چیز دوسری چیز سے بنی ہے یا اس پر مشتمل ہے۔ جبکہ سفید ہیرا جمع کی نشاندہی کرتا ہے، جس کا مطلب ہے کہ ہیرے کے قریب ترین شے میں دوسری چیز ہو سکتی ہے یا ہو سکتی ہے۔ سی + + حقیقی دنیا کے ماڈلنگ میں ساخت اور جمع کے درمیان فرق کرنے کا ایک اور طریقہ، موجود شے کی متعلقہ زندگی پر غور کرنا ہے۔ مثال کے طور پر، اگر کسی کار آبجیکٹ میں چیسیس آبجیکٹ موجود ہے، تو ممکنہ طور پر کار کی زندگی کے دوران چیسیس کو تبدیل نہیں کیا جائے گا۔ اس کی زندگی کار کی طرح ہی ہوگی ؛ اس لیے رشتہ ساخت کا ہے۔ دوسری طرف، اگر کار آبجیکٹ میں ٹائر آبجیکٹ کا ایک سیٹ موجود ہے، تو یہ ٹائر آبجیکٹ ختم ہو سکتے ہیں اور کئی بار تبدیل ہو سکتے ہیں۔ یا اگر کار ناقابل استعمال ہو جاتی ہے، تو کچھ ٹائر بچائے جا سکتے ہیں اور دوسری کار کو تفویض کیے جا سکتے ہیں۔ کسی بھی صورت میں، ٹائر آبجیکٹ کی عمر کار آبجیکٹ سے مختلف ہوتی ہے ؛ اس لیے رشتہ جمع کرنے کا ہوتا ہے۔ اگر کوئی اوپر بیان کردہ تعلقات کو نافذ کرنے کے لیے C + + سافٹ ویئر کلاس بناتا ہے، تو کار آبجیکٹ ڈیٹا ممبر میں ایک مکمل چیسیس آبجیکٹ پر مشتمل ہوگا۔ یہ چیسیس آبجیکٹ کار کلاس کے کنسٹرکٹر میں فوری طور پر پیش کیا جائے گا (یا ڈیٹا ممبر کی ڈیٹا ٹائپ اور کنسٹرکٹر میں تفویض کردہ اس کی خصوصیات کے طور پر بیان کیا جائے گا۔) اور چونکہ یہ کار کلاس کا مکمل طور پر موجود ڈیٹا ممبر ہوگا، اگر کار کلاس آبجیکٹ کو حذف کرنا ہو تو چیسیس آبجیکٹ اب موجود نہیں رہے گا۔ دوسری طرف، کار کلاس کے ڈیٹا ممبران جو ٹائر آبجیکٹ کی طرف اشارہ کرتے ہیں وہ غالبا C + + پوائنٹر ہوں گے۔ ٹائر آبجیکٹ کو فوری طور پر حذف کیا جا سکتا ہے اور بیرونی طور پر حذف کیا جا سکتا ہے، یا کسی مختلف کار آبجیکٹ کے ڈیٹا اراکین کو بھی تفویض کیا جا سکتا ہے۔ ٹائر آبجیکٹ کی آزاد زندگی کار آبجیکٹ کو حذف کرنے کے وقت سے الگ ہوگی۔ آبجیکٹ کمپوزیشن ہایس-اے ہولونیمی میرونیمی از-اے ہائپرنیمی (اور سپر ٹائپ) ہپونیمی (اور ذیلی ٹائپ) نوٹس آبجیکٹ پر مبنی پروگرامنگ ریلیشنل الجبرا بھی دیکھیں۔