
Carlos Andres Lozano Arroyo
PreguntaTengo una inquietud, ¿las clases anidadas no van en contra vía del principio de alta cohesión y bajo acoplamiento?

Stiven Trujillo
Pero esto hace que el programa no sea escalable, porque si limitas esa clase a que solo sea utilizada por su clase externa, y si en algún momento va a existir otra clase externa que utilize de esa clase. pum!
jejeje literalmente solo veo este concepto aplicado a librerías como dice el amigo Oscar.
Oscar Estuardo de la Mora
No, las clases anidadas de hecho proveen de cohesión a nivel de clases. Normalmente no vas a utilizar clases anidadas en aplicaciones, casi que solo se usa cuando haces librerías o APIs reutilizables en otros proyectos. Pero bueno, un ejemplo practico es, Imagina que tienes una clase de un auto que es AutoYaris, este va a tener una clase interna llamado MotorYaris que extiende de una clase Motor. Esta clase interna hace que la instancia de AutoYaris camine, pero solamente vas a usar esa clase interna por que es especifica para los AutoYaris. Si vas a hacer AutoMazda3, vas a crearle su clase interna especifica, MotorMazda3, por que solamente la vas a usar en la clase Anfitriona, jamas en otra clase.
Como te digo, este concepto es casi que exclusivo para librerías que ya implementan patrones de diseño, un concepto puede que exista pero no necesariamente lo vas a usar (es mas, a veces el uso de clases anidadas puede que te haga codificar de mas, te lo digo por experiencia).