هناك مشكلة عند كتابة التعليمات البرمجية: يتم تعريف فئة الواجهة في الحزمة ، ويحتاج حزمة أخرى إلى تنفيذها. هنا ، يتم اعتماد مبادئ عزل الواجهة وانعكاس التبعية لعكس تبعيات الحزمتين. ومع ذلك ، واجهنا مشكلة هنا. تتبنى فئة التنفيذ نموذج المصنع للتنظيم ، وبالتالي فإن فئة التنفيذ لا تريد أن تتعرض للمحاكمة خارج الحزمة ، لكن فئة التنفيذ تحتاج أيضًا إلى تنفيذ الواجهة العامة. إذن ، إليك سؤال: إذا كان الفصل من النوع الافتراضي ووظيفة العضو من النوع العام ، فما هي قيود الوصول؟
تنفيذ التحقق
1. حدد أولاً فئة واجهة في حزمة:
حزمة myTest الواجهة العامة classAccessTest {void getData () ؛ charseqence getstring () ؛}2. تحديد فئات التنفيذ والمصانع في حزم التنفيذ
Package classAccessTest استيراد myTest.ClascAccessTest classAccessTestimp ينفذ classAccessTest {int ma = 0 ؛ classAccessTestimp (int a) {ma = a ؛ } public void getData () {system.out.printlin ("البيانات هي" + ma) ؛ ) } package classAccessTest import myTest.ClassAccessTest Public Class Factory {public static classAccessTest getAccessTest () {return new classAccessTestimp (10) ؛ }}3. ثم استخدم الواجهة في الحزمة الأصلية:
حزمة mytest استيراد classcesstest.factory // استيراد classaccesstest.classaccesstestimp الفئة العامة testmain {public static void main (string arg []) {factory.getAccessTest (). test = </span> جديد <span style = "font-family: arial ، helvetica ، sans-serif ؛"> classaccessTestimp (10) ؛ </span>}} 4. النتائج:
في فئة TestMain ، يمكن تشغيل الجزء غير المقيد بشكل طبيعي ، وسيقوم الجزء المعلق بالإبلاغ عن خطأ. يتم اشتقاق ClassAccessTestimpt غير المحدد من ما سبق أن أذونات الوصول للفئات في Java يمكن أن تكون أصغر من أذونات الوصول للأعضاء. بموجب متطلبات الانقلاب وتغليف الحزم ، يمكن تلبية المتطلبات.