التجريد مقابل التغليف: الفرق بين التجريد والتغليف

نشرت: 2021-02-09

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

مقدمة

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

أيضًا ، يوفر مفهوم OOP مثل الميراث قابلية توسيع الكود. هذه المفاهيم مفيدة في تحديد الفئات المجردة ، وتحديث الرموز التي تم تنفيذها مسبقًا ، وتنفيذ تطبيق لسيناريوهات الحياة الواقعية.

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

في البداية ، دعنا نتجول سريعًا في مفاهيم التجريد والتغليف.

التجريد

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

على سبيل المثال ، لنفترض أنه تم تكليفنا بمهمة لإنشاء بوابة تسجيل دورة عبر الإنترنت ، وحقول البيانات المتاحة لنا هي {الاسم ، والعمر ، والوظيفة الحالية ، واسم الكلية ، واسم الدورة ، وطريقة الدفع ، واسم الأخ ، والحالة الاجتماعية ، والمركبة رقم}.

بعد إلقاء نظرة على حقول البيانات المتاحة ، سوف نفهم أن بعض الحقول ليست ضرورية لبوابة التسجيل في الدورة التدريبية ، وأن الحقول مثل {sibling's name، marital status، car number} ليست مطلوبة للتسجيل في الدورة.

لذلك ، نحن بحاجة إلى أن نكون محددين ونختار البيانات ذات الصلة فقط. الآن الحقول الضرورية هي {الاسم ، والعمر ، والوظيفة الحالية ، واسم الكلية ، واسم الدورة التدريبية ، وطريقة الدفع} ، وهذا مثال على التجريد في OOP لأننا قمنا بمرافقة المعلومات المحددة من البيانات الكاملة.

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

غالبًا ما يتم الخلط بين كثير من الناس حول التجريد والفصل التجريدي ، فهل كلاهما مرتبطان؟

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

التغليف

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

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

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

دعونا نلقي نظرة على برنامج جافا بسيط لفهم هذا بشكل أفضل.

التسجيل في الدورة التدريبية {
سلسلة خاصة student_name ؛
سلسلة خاصة course_name ؛
سلسلة عامة getName () {
عودة اسم_الطلاب ؛
}
setName العامة الباطلة (اسم السلسلة) {
this .student_name = name ؛
}
getCourse سلسلة عامة () {
العودة course_name ؛
}
setCourse الفراغ العام (دورة سلسلة) {
this .course_name = course؛
}
}
فئة عامة u pGrad {
العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {
CourseRegistration c = new CourseRegistration () ؛
c.setName ( “mithun” ) ؛
c.setCourse ( "علم البيانات" ) ؛
System.out.println (c.getName ()) ؛
System.out.println (c.getCourse ()) ؛
}
}

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

الآن بعد أن رأينا تعريف ومثال التجريد ، دعونا نناقش المزايا والاختلافات بين التجريد والتغليف.

مزايا التجريد

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

مزايا التغليف

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

الفرق بين التجريد والتغليف

تعريف

  • التجريد هو إخفاء التفاصيل وتنفيذ الكود.
  • التغليف هو إخفاء البيانات والتحكم في رؤية الكود.

مرحلة

  • التجريد هو عملية على مستوى التصميم.
  • التغليف هو عملية على مستوى التنفيذ.

القدرة المحورية

  • يهتم التجريد بما يمكن أن يفعله مثيل الفئة ، بدلاً من تنفيذ الفئة.
  • يساعد التغليف في ربط البيانات والتحكم في الحفاظ على شفافية البيانات.

حالة الاستخدام

  • التجريد هو عملية على مستوى التصميم ويتم استخدامه لتقليل التعقيد في مرحلة تصميم المشروع.
  • التغليف هو عملية على مستوى التنفيذ ، ويتم استخدامه لتوفير الخصوصية والحفاظ على التحكم في شفافية البيانات في مرحلة تنفيذ المشروع.

كيفية التنفيذ

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

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

خاتمة

لقد مررنا بأهمية مفاهيم OOP ، وفهمنا تعريف التجريد والتغليف. تجول في أمثلة التجريد والتغليف. لقد ألقينا أيضًا نظرة على مزايا استخدام مفاهيم OOP مثل التجريد والتغليف. وأخيرًا ، راجعنا الفرق بين التجريد والتغليف.

الآن بعد أن أصبحت على دراية بتعريف وتنفيذ التجريد والتغليف ، حاول تنفيذها في الكود الخاص بك وحاول تقليل تعقيد الكود الذي ستكتبه من الآن فصاعدًا!

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

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

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

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

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

ما هي الاختلافات بين التغليف والتجريد؟

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