ما هي الطبقة الداخلية المجهولة؟

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

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

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

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

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