Hay un problema al escribir código: una clase de interfaz se define en el paquete y otro paquete debe implementarlo. Aquí, los principios de aislamiento de la interfaz e inversión de dependencia se adoptan para invertir las dependencias de los dos paquetes. Sin embargo, encontramos un problema aquí. La clase de implementación adopta el modelo de fábrica para instanciar, por lo que la clase de implementación no quiere estar expuesta al fuera del paquete, pero la clase de implementación también necesita implementar la interfaz pública. Entonces, aquí hay una pregunta: si la clase es de tipo predeterminado y la función miembro es de tipo público, ¿cuáles son las restricciones de acceso?
Implementar verificación
1. Primero defina una clase de interfaz en un paquete:
paquete mytest interfaz pública classAccessTest {void getData (); Charseqence getTring ();}2. Definir clases de implementación y fábricas en los paquetes de implementación
paquete classAccessTest import mytest.classaccessTest classAccessTestimp implementa classAccessTest {int ma = 0; ClassAccessTestimp (int a) {ma = a; } public void getData () {System.out.printlin ("Los datos son" + ma); } public CharSequence getString () {return ("Los datos son" + ma); } paquete classAccessTest import mytest.classaccesStest public class Factory {public static classAccessTest getAccesStest () {return New ClassAccessTestimp (10); }}3. Luego use la interfaz en el paquete original:
paquete mytest import classCessTest.Factory // Import classAccessTest.ClassAcSaccesStestimp public sans-serif; "> classAccessTest test = </span> new <span style =" Font-Family: Arial, Helvetica, Sans-Serif; "> ClassAccessTestimp (10); </span>}}
4. Resultados:
En la clase TestMain, la parte no comentada puede ejecutarse normalmente, y la parte comentada informará un error. ClassAccessTestimp Conclusión indefinida se deriva de lo anterior que los permisos de acceso de las clases en Java pueden ser más pequeños que los permisos de acceso de los miembros. Según los requisitos de inversión y encapsulación de paquetes, se pueden cumplir los requisitos.