Ada masalah saat menulis kode: kelas antarmuka didefinisikan dalam paket, dan paket lain perlu mengimplementasikannya. Di sini, prinsip -prinsip isolasi antarmuka dan inversi ketergantungan diadopsi untuk membalikkan ketergantungan dari kedua paket tersebut. Namun, kami mengalami masalah di sini. Kelas implementasi mengadopsi model pabrik untuk membuat instantiate, sehingga kelas implementasi tidak ingin terpapar ke out-of-packet, tetapi kelas implementasi juga perlu mengimplementasikan antarmuka publik. Jadi, inilah pertanyaannya: Jika kelasnya memiliki tipe default dan fungsi anggota adalah tipe publik, lalu apa pembatasan aksesnya?
Menerapkan verifikasi
1. Pertama tentukan kelas antarmuka dalam suatu paket:
Paket MyTest Public Interface ClassAccessTest {void getData (); Charseqence getstring ();}2. Tentukan kelas implementasi dan pabrik dalam paket implementasi
Paket ClassAccessTest Impor mytest.classAccessTest kelas ClassAccessTesTimp mengimplementasikan ClassAccessTest {int ma = 0; ClassAccessTesTimp (int a) {ma = a; } public void getData () {System.out.printlin ("Data adalah" + ma); } public charsequence getstring () {return ("Data adalah" + ma); } Paket ClassAccessTest Impor MyTest.ClassAccessTest Public Class Factory {public classAccessTest GetAccessTest () {return new ClassAccessTesTimp (10); }}3. Kemudian gunakan antarmuka dalam paket asli:
Paket mytest impor classcesstest.factory // import classAccessTest.classAccessTestimpul kelas publik testmain {public static void main (string arg []) {factory.getAccessTest (). getString (); <span style = "white-space: pre"> </span> // <span style = "font-fon-fon test = </span> <span style = "font-family: Arial, helvetica, sans-serif;"> classAccessTesTimp (10); </span>}} 4. Hasil:
Di kelas TestMain, bagian yang tidak dikomal dapat berjalan secara normal, dan bagian yang dikomentari akan melaporkan kesalahan. KESIMPULAN CLASSACCESSTIMP Tidak terdefinisi berasal dari atas bahwa izin akses kelas di Java bisa lebih kecil dari izin akses anggota. Di bawah persyaratan inversi dan enkapsulasi paket, persyaratan dapat dipenuhi.