ما هي البيانات المخفية في C ++؟ شرح التجريد والتغليف

نشرت: 2021-05-24

جدول المحتويات

مقدمة في إخفاء البيانات

البيانات هي أكثر المكونات حساسية وتقلبًا في البرنامج ، والتي ، إذا تم التلاعب بها ، يمكن أن تؤدي إلى إخراج غير صحيح وتضر بسلامة البيانات. هذا هو المكان الذي يثبت فيه إخفاء البيانات أنه ضروري. في المصطلحات الفنية ، يُشار إلى إخفاء البيانات أيضًا باسم إخفاء المعلومات ، وهو آلية برمجة موجهة للكائنات متأصلة (OOP) لإخفاء تفاصيل الكائن الداخلية عن المستخدم النهائي.

الهدف الأساسي لإخفاء البيانات هو إخفاء البيانات داخل الفصل من الوصول غير المصرح به وتجنب الاختراق غير الضروري من خارج الفصل. يضمن إخفاء البيانات الوصول المقيد إلى البيانات لضمان تكامل الكائن ومنع التغييرات غير المقصودة أو المقصودة على البرنامج المعني.

ببساطة ، إخفاء البيانات يأخذ أجزاء معينة من كود البرنامج ويخفيها من أعضاء الكائن. إذا حاول أحد أعضاء الكائن الوصول إلى البيانات المخفية ، فسيرجع البرنامج خطأ. هذه آلية تحذيرية تم تقديمها لضمان امتناع المبرمج عن الاتصال بالبيانات الخاطئة التي تم إخفاؤها. غالبًا ما تكون المكونات الداخلية التي لا توجد حاجة متوقعة من جانب المستخدم مخفية.

إخفاء البيانات واستخراج البيانات وتغليفها

ترتبط البيانات المخفية في C ++ ارتباطًا وثيقًا بخاصيتين OOP أخريين - التجريد والتغليف.

تجريد البيانات

يعد تجريد البيانات آلية لعرض واجهة البرنامج ذات الصلة فقط للمستخدم النهائي وإخفاء تفاصيل التنفيذ الأكثر تعقيدًا وتعقيدًا. لنفكر في مثال من الحياة الواقعية لفهم أفضل. ضع في اعتبارك تلفزيونك. يمكنك تشغيل التلفزيون وإيقافه وتغيير القناة وضبط مستوى الصوت وإضافة مكونات خارجية مثل أجهزة الفيديو ومشغلات DVD ومكبرات الصوت. لكنك لا تعرف الآليات الداخلية للتلفزيون.

أنت غافل عن كيفية استقبال الإشارات وترجمتها وعرض الإخراج في النهاية. وبالتالي ، يعد التلفزيون مثالًا بارعًا على الفصل بين التنفيذ الداخلي والتأثير الخارجي. باستخدام تجريد البيانات ، يتم حماية تنفيذ الفئة من الأخطاء غير المقصودة ويتطور استجابة للمتطلبات المتغيرة أو تقارير الأخطاء دون تدخل على مستوى المستخدم.

تغليف البيانات

يشير تغليف البيانات إلى تجميع البيانات والوظائف ذات الصلة في وحدة واحدة تسمى الفئة. ضع ، إذا كان لديك سمة غير مرئية من خارج كائن ما وقمت بتجميعها بطرق توفر وصولاً للقراءة أو الكتابة إليها ، فيمكنك إخفاء المعلومات الدقيقة وتنظيم الوصول إلى الحالة الداخلية للشيء.

لذلك ، اعتمادًا على الطرق التي تنفذها ، فأنت تتحمل مسؤولية تحديد ما إذا كان يمكن قراءة السمة وتغييرها أو ما إذا كانت للقراءة فقط أو غير مرئية على الإطلاق.

الفرق بين إخفاء البيانات وتغليف البيانات

عند مناقشة OOP ، غالبًا ما يتم استخدام إخفاء البيانات وتغليف البيانات بالتبادل لأن كلا المفهومين يتعاونان لتحقيق حارس بوابة مساعدة موضوعي مشترك للمعلومات الحساسة. لا شك أن فكرة تغليف البيانات قابلة للمقارنة وظيفيًا بإخفاء البيانات ، ولكن نظرًا لأنها تعمل على مستويات مختلفة ، فهي مختلفة هيكليًا.

على الرغم من ارتباطها ببعضها البعض ارتباطًا جوهريًا ، إلا أن هناك فرقًا جوهريًا بين إخفاء البيانات وتغليف البيانات.

  1. يتمثل الاختلاف الرئيسي بين إخفاء البيانات وتغليفها في أن الأول يركز على تعزيز أمان البيانات في البرنامج ، بينما يتعامل الأخير مع إخفاء تعقيد البرنامج.
  2. يركز إخفاء البيانات على إمكانية الوصول لعضو الكائن داخل الفصل ، بينما يركز تغليف البيانات على كيفية الوصول إلى البيانات وكيف تتصرف الكائنات المختلفة. يتم إجراء التغليف بشكل أساسي من خلال إخفاء المعلومات وليس إخفاء المعلومات فقط. هذا يعني أن المبرمج يخفي هياكل عضو الكائن ويخفي تنفيذ جميع طرقه.
  3. بينما يركز إخفاء البيانات على تقييد استخدام البيانات في برنامج ما لضمان أمان البيانات ، يركز تغليف البيانات على التفاف (أو تغليف) البيانات المعقدة لتقديم عرض أبسط للمستخدم.
  4. في إخفاء البيانات ، يجب تعريف البيانات على أنها خاصة فقط. في تغليف البيانات ، يمكن أن تكون البيانات عامة أو خاصة.
  5. إخفاء البيانات هو عملية وتقنية في حد ذاته ، في حين أن تغليف البيانات هو عملية فرعية في إخفاء البيانات.

محددات الوصول

يدعم C ++ إخفاء البيانات ، وبالتالي ، تجريد البيانات وتغليفها من خلال إنشاء أنواع محددة من قبل المستخدم ، تُعرف بالفئات. يتم تحديد نطاق أعضاء هذه الفئة التي تم إنشاؤها بواسطة الكلمات الأساسية المعروفة باسم محددات الوصول. عادةً ، هناك ثلاثة أنواع من محددات الحماية أو الوصول المتاحة ضمن فئة - خاصة ومحمية وعامة ، تُستخدم لبناء قدرات تغليف الفصل.

تساعد محددات الوصول على تحديد كيفية الوصول إلى المتغيرات والوظائف الخاصة بنوع ما من خارج الفصل الدراسي. عادةً ما تكون البيانات الموجودة داخل فئة خاصة للتخلص من حالات التلاعب العرضي ، وتكون عملياتها عامة. ومع ذلك ، فإن إمكانية الوصول داخل الرتبة ليست ملزمة بأي قيود.

المتغيرات / الوظائف الخاصة: يمكن الوصول إليها فقط من قبل الأعضاء المحددين كجزء من الفصل الدراسي.

المتغيرات / الوظائف العامة: يمكن الوصول إليها من أي مكان في البرنامج.

المتغيرات / الوظائف المحمية خاصة داخل الفصل ومتاحة فقط للوصول عن بعد في الفئة المشتقة.

تطبيق إخفاء البيانات

لفهم إخفاء البيانات بشكل أفضل ، دعونا ننظر في المثال التالي. بالنظر إلى أنك المبرمج ، دعنا نفترض أنك تعلن عن فئة باسم "CheckAccount" ، والتي حددت فيها عضو البيانات بمصطلح "الرصيد" ، والذي يشير إلى رصيد الحساب المصرفي للمستخدم.

في هذا المثال بالذات ، فإن عضو البيانات "الرصيد" هو معلومات حساسة. على الرغم من أنك قد تعرض وصولاً خارجيًا إلى التطبيق لعرض هذه المعلومات الحساسة ، إلا أنك لن تدع هذا التطبيق الخارجي يغير سمات البيانات المخزنة في "رصيد" العضو. يمكن تحقيق هذه النتيجة باستخدام إخفاء البيانات ، وبشكل أكثر تحديدًا ، يتم التحكم فيها عن طريق استخدام محدد الوصول الخاص.

  1. يتم عادةً إخفاء البيانات بناءً على بيانات غير متوقعة وحساسة. هذا النوع من البيانات أساسي في تشغيل البرنامج بشكل فعال وسريع. نظرًا للوصول غير الضروري ، فإن بيانات تغييرات البيانات الناتجة دائمة وتكلف بإعادة العمل كاملة من جانب المبرمج قبل الاستخدام الإضافي.
  2. يساعد إخفاء البيانات في حماية أعضاء الفصل من عمليات التجاهل غير المقصودة. تشتمل الفئة عادة على مجالات مختلفة ذات صلة يجب أن تكون في حالة موثوقة. افترض أنه يُسمح للمبرمج بالتحكم في أي من هذه المجالات بشكل مباشر. في هذه الحالة ، هناك احتمال أن تقوم بتحويل منطقة واحدة دون تغيير المجالات الهامة ذات الصلة ، مما يترك فصلك في حالة تضارب.

فوائد إخفاء البيانات

فوائد إخفاء البيانات متعددة الجوانب:

  1. يتم استخدامه لتقليل عدم القدرة على التنبؤ بالبيانات وتعقيد البيانات.
  2. يحسن إعادة استخدام البرنامج.
  3. من خلال الحد من الترابط بين مكونات البرنامج ، يقلل أيضًا من تعقيد النظام لزيادة المتانة.
  4. يخفي تصميم التخزين المادي للبيانات. هذا يساعد في تحديد الواجهة بشكل واضح ، ويحسن قابلية القراءة والفهم.
  5. يوفر ضمانًا للبيانات من الفساد والوصول غير المبرر. بمعنى آخر ، يساعد في إخفاء البيانات المهمة ، وبالتالي ضمان بروتوكولات أمان مشددة ضد المتسللين. إذا تم نشر جميع البيانات الداخلية على الملأ ، يمكن للقراصنة اختراق البيانات الداخلية بسهولة وإجراء تغييرات مقصودة بشكل ضار لتغيير أداء البرنامج. يؤدي إخفاء البيانات إلى زيادة صعوبة فك الشفرة لأن البيانات المخفية ستظهر غير مرئية للأعضاء الخارجيين في الفصل ، وبالتالي المتسلل.
  6. الفئات المغلفة واضحة ومباشرة وسهلة الإدارة وتسهل التطوير المستقبلي للتطبيق.

مساوئ إخفاء البيانات

العيب الوحيد لإخفاء البيانات هو الترميز الإضافي. يتطلب إخفاء البيانات من المبرمجين كتابة أكواد أطول لإنشاء التأثير المطلوب في البيانات المخفية.

تعلم دورات هندسة البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

إخفاء البيانات يشبه لعبة الروليت الروسية. في لعبة الروليت الروسية ، يوجد رصاصة واحدة فقط من بين كل ستة ثقوب. دعونا نتخيل أن اللقطة تمثل تهديدًا محسوسًا للبيانات. هل أنت على استعداد لاغتنام الفرصة؟ قد توجد خمسة سيناريوهات تعمل لصالحك ، لكن هل يمكنك تحديد التهديد على وجه التحديد؟ الجواب لا. كل السيناريوهات تحمل عبئًا احتماليًا متساويًا من الشك والخوف. بدلاً من الاستسلام لعدم اليقين هذا ، اتخذ موقفًا ضد تهديدات البيانات. اذهب متخفيا مع إخفاء البيانات.

إذا كنت مهتمًا بمعرفة المزيد حول Java و OOPs وتطوير البرامج الكاملة ، تحقق من upGrad & IIIT-B's Executive PG Program in Full-stack Software Development المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، أكثر من 9 مشاريع ، ومهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ما هو التغليف في البرمجة الشيئية؟

التغليف هو طريقة لربط البيانات مع الكود الذي يعمل على البيانات. إنها آلية تستخدم لإخفاء تفاصيل تنفيذ البيانات أثناء تعريض استخراج البيانات للعالم الخارجي. تُعرف عملية إخفاء المعلومات خلف واجهة محددة جيدًا باسم التغليف. التغليف هو مفهوم قوي للبرمجة الشيئية. إنها عملية إخفاء البيانات الداخلية وعمليات كائن من العالم الخارجي عن طريق إنشاء وظائف موصل.

ما هو التجريد في البرمجة الشيئية؟

التجريد هو تقنية مستخدمة في البرمجة الشيئية لفصل واجهات الفئات عن تفاصيل التنفيذ لكل كائن على حدة. هذا يعني أنه يمكن تغيير الكود دون تغيير الكود الذي يستخدم الفئة. في البرمجة الشيئية (OOP) ، يمثل التجريد كائنًا يمكن معالجته ، لكن لا يمكن تحديده بشكل صريح. يعتبر التجريد جزءًا مهمًا من OOP ؛ إنها عملية فصل واجهة الفصل عن تنفيذ أساليبها.

كيف تتفاعل الفئات والكائنات في البرمجة الشيئية؟

الفئات والكائنات هي أساس البرمجة الشيئية (OO). البرمجة الشيئية هي نموذج برمجة ، يستخدم كائنات وفئات لنمذجة العالم الحقيقي. الفصل عبارة عن مخطط أو قالب. إنه وصف أو تحديد لما يجب أن يكون عليه الكائن. يحدد خصائص وسلوكيات وبيانات نوع معين من الأشياء. الكائنات هي أمثلة أو أمثلة للفصل. يمكن تصنيف كل كائن في البرنامج إلى فئة واحدة أو أكثر. يمكن للفئة أن ترث الخصائص والطرق والخصائص الأخرى لفئة أخرى. وهذا ما يسمى بالميراث.