Al crear una aplicación, ¿cuál es la forma inteligente de usar métodos en Java?

Depende del diseño de su aplicación, pero aquí hay un ejemplo.

Digamos que hago una biblioteca en Java para Android. La biblioteca proporciona la capacidad de grabar imágenes de la cámara, por lo que haría un método como este:

public Image getImageFromCamera () {
}

Es público porque quiero que ese método esté disponible para todos, ya que quiero que todos lo usen para obtener una Imagen de la cámara.

Ahora, digamos que también tengo un método que cambia cómo funciona algo basado en la versión de Android o algo así.

boolean privado isRunningOnAndroid4OrLower () {
}

Ahora, ese método es importante para mí como autor de la biblioteca, pero es un detalle de implementación que el usuario no necesita saber. De hecho, en una nueva versión de mi biblioteca, podría decidir verificar el número de versión de una manera diferente, y ese método ya no es necesario. Básicamente, a menos que sea útil para los usuarios de mi biblioteca, lo hago privado, porque no quiero que la gente lo use, y desaparece más tarde.

Además, haré que mis métodos públicos sean un poco más “duros para la batalla”. Comprobaré si hay entradas nulas y me aseguraré de que funcione completamente como está documentado, pero los métodos privados pueden ir y venir, y debido a que solo soy yo quien los usa, yo No es necesario tener todos los controles y equilibrios presentes en un método público.

Es una pregunta abierta. Todo depende del problema que intente resolver o de la aplicación que intente construir.

Pero hay principios generales que rigen cómo diseña su código. Pocos que puedo recordar son:

  • Principios SÓLIDOS y principios OOD – http://butunclebob.com/ArticleS… .
  • Patrones de diseño – Patrones de diseño | Diseño orientado a objetos
  • Principios de código limpio por tío Bob Martin
  • Patrones de arquitectura empresarial por Martin Fowler – Catálogo de patrones de arquitectura de aplicaciones empresariales
  • Refactorización a patrones – Catálogo de refactorización a patrones
  • Catálogo de refactorización de Martin Folwer – catálogo