มีปัญหาเมื่อเขียนโค้ด: คลาสอินเตอร์เฟสถูกกำหนดไว้ในแพ็คเกจและแพ็คเกจอื่นจำเป็นต้องใช้งาน ที่นี่หลักการของการแยกอินเทอร์เฟซและการผกผันการพึ่งพาอาศัยกันถูกนำมาใช้เพื่อคว่ำการพึ่งพาของแพ็คเกจทั้งสอง อย่างไรก็ตามเราพบปัญหาที่นี่ คลาสการใช้งานใช้แบบจำลองโรงงานเพื่อสร้างอินสแตนซ์ดังนั้นคลาสการใช้งานไม่ต้องการให้สัมผัสกับนอกแพ็คเก็ต แต่คลาสการใช้งานยังจำเป็นต้องใช้อินเทอร์เฟซสาธารณะ ดังนั้นนี่คือคำถาม: หากคลาสเป็นประเภทเริ่มต้นและฟังก์ชั่นสมาชิกเป็นประเภทสาธารณะแล้วข้อ จำกัด การเข้าถึงคืออะไร?
ใช้การยืนยัน
1. ก่อนกำหนดคลาสอินเตอร์เฟสในแพ็คเกจ:
Package MyTest Public Interface ClassAccessTest {void getData (); Charseqence getString ();}2. กำหนดคลาสการใช้งานและโรงงานในแพ็คเกจการใช้งาน
Package ClassAccessTest Import MyTest.ClassAccessTest คลาสคลาส ACCESSTESTIMP ใช้ classAccessTest {int ma = 0; classaccesstestimp (int a) {ma = a; } โมฆะสาธารณะ getData () {system.out.printlin ("ข้อมูลคือ" + ma); } charsequence สาธารณะ getString () {return ("ข้อมูลคือ" + ma); } Package ClassAccessTest Import MyTest.ClassAccessTest โรงงานชั้นเรียนสาธารณะ {สาธารณะ classAccessTest สาธารณะ getAccessTest () {ส่งคืนใหม่ ClassAccessTestimp (10); -3. จากนั้นใช้อินเทอร์เฟซในแพ็คเกจต้นฉบับ:
Package MyTest Import ClassCessTest.Factory // นำเข้า classAccessTest.classAccessTestimp Public Class Testmain {โมฆะสาธารณะคงที่หลัก (String arg []) {factory.getAccessTest (). getString (); test = </span> ใหม่ <span style = "font-family: Arial, Helvetica, sans-serif;"> classaccesstestimp (10); </span>}} 4. ผลลัพธ์:
ในคลาส testmain ส่วนที่ไม่ได้รับการตรวจสอบสามารถทำงานได้ตามปกติและส่วนที่แสดงความคิดเห็นจะรายงานข้อผิดพลาด ข้อสรุปที่ไม่ได้กำหนด ClassAccessTestimp นั้นได้มาจากข้างต้นว่าการอนุญาตการเข้าถึงของชั้นเรียนใน Java อาจมีขนาดเล็กกว่าสิทธิ์การเข้าถึงของสมาชิก ภายใต้ข้อกำหนดของการผกผันและการห่อหุ้มแพ็คเกจสามารถปฏิบัติตามข้อกำหนดได้