مستوى الوصول
في علوم الحاسوب وبرمجة الحاسوب ، يُشير مستوى الوصول إلى مجموعة الصلاحيات أو القيود الممنوحة لنوع بيانات معين . يُعدّ خفض مستوى الوصول أسلوبًا فعالًا للحدّ من حالات الفشل ، وتقليل وقت تصحيح الأخطاء ، وتبسيط تعقيد النظام بشكل عام. فهو يُقيّد تعديل المتغيرات بالطرق المُعرّفة ضمن واجهة الفئة فقط. ولذلك، فهو مُدمج في العديد من أنماط تصميم البرمجيات الأساسية . بشكل عام، لا يُمكن إنشاء كائن مُعين أو قراءته أو تحديثه أو حذفه بواسطة أي دالة دون امتلاك مستوى وصول كافٍ.
أكثر مستويين شيوعًا للوصول هما العام والخاص ، واللذان يشيران على التوالي إلى : إمكانية الوصول إلى جميع عناصر البرنامج، أو إمكانية الوصول داخل الفئة المعنية فقط. أما المستوى الثالث، المحمي ، فيمنح صلاحيات الوصول إلى جميع الفئات الفرعية للفئة المعنية. تُستخدم مُعدِّلات مستويات الوصول بشكل شائع في لغة جافا [ 1 ] وكذلك في لغة سي شارب، التي تُضيف مستوى الوصول الداخلي . [ 2 ] في لغة سي++، الفرق الوحيد بين البنية والفئة هو مستوى الوصول الافتراضي، وهو خاص للفئات وعام للبنى . [ 3 ]
لتوضيح الفائدة: لنفترض متغيرًا عامًا يمكن الوصول إليه من أي جزء من البرنامج. في حال حدوث خطأ، قد يكون السبب في أي جزء من البرنامج، بما في ذلك مختلف التبعيات الفرعية. في قاعدة بيانات برمجية ضخمة، يؤدي هذا إلى آلاف المصادر المحتملة. في المقابل، لنفترض متغيرًا خاصًا. نظرًا لقيود الوصول، يجب أن تتم جميع التعديلات على قيمته عبر دوال مُعرَّفة داخل الفئة. بالتالي، يكون الخطأ محصورًا هيكليًا داخل الفئة. غالبًا ما يوجد ملف مصدر واحد فقط لكل فئة، مما يعني أن تصحيح الأخطاء لا يتطلب سوى تقييم ملف واحد. مع وجود نمطية كافية ومستوى وصول منخفض، يمكن لقواعد البيانات البرمجية الضخمة تجنب العديد من التحديات المرتبطة بالتعقيد. [ 4 ]
مثال: فئة رصيد البنك
تم استرجاعها من قسم الأسئلة والأجوبة في استراحة قهوة جافا [ 5 ]
فئة عامة رصيد البنك { مالك السلسلة العامة؛ رصيد عدد صحيح خاص؛ public bank_balance( String name, int dollars ) { المالك = الاسم؛ إذا (الدولارات >= 0) الرصيد = دولارات؛ آخر دولارات = 0؛ } دالة عامة من نوع int getBalance() { إعادة الرصيد؛ } public void setBalance(int dollars) { إذا (الدولارات >= 0) الرصيد = دولارات؛ آخر الدولارات = 0؛ } }هنا، يُعرَّف المتغير الإلزامي balance كمتغير من نوع int خاص . يضمن هذا عدم قدرة الفئات والأساليب والدوال الأخرى على الكتابة فوق قيمة المتغير balance عن طريق الخطأ. بدلاً من ذلك، يجب عليها الوصول إلى واجهة الفئة bank_balance ، التي تضمن أساليبها عدم انخفاض الرصيد عن الصفر.
مراجع
- ↑ "التحكم في الوصول إلى أعضاء فئة (دروس جافا > تعلم لغة جافا > الفئات والكائنات)" . docs.oracle.com . تم الاطلاع عليه بتاريخ 22-11-2016 .
- ↑ "مُعدِّلات الوصول (مرجع C#)" . msdn.microsoft.com . تم الاطلاع عليه بتاريخ 22-11-2016 .
- ↑ "الصداقة والوراثة - دروس C++" . www.cplusplus.com . تم الاطلاع عليه بتاريخ 23-11-2016 .
- ↑ "لماذا نحتاج إلى متغيرات خاصة؟" . softwareengineering.stackexchange.com . تم الاطلاع عليه بتاريخ 22-11-2016 .
- ↑ "سؤال وجواب : ما الفرق بين المتغيرات العامة والخاصة والمحمية؟ "
- هندسة الأمن السيبراني
