2010-05-29 11 views
6

Estoy aprendiendo Java y OOP, y he estado haciendo los problemas en Project Euler para practicar (awesome site btw).Las mejores formas de reutilizar los métodos Java

me encuentro haciendo muchas de las mismas cosas una y otra vez, como:

  • comprobar si un número entero es primo/primos generando
  • generación de la serie de Fibonacci
  • comprobar si un número es una palindrome

¿Cuál es la mejor manera de almacenar y llamar a estos métodos? ¿Debo escribir una clase de utilidad y luego import? Si es así, ¿importo un archivo .class o .java? Estoy trabajando desde un editor de texto plano y la terminal Mac.

Gracias!

+1

+1 para codificación java euler e ide-less – miku

+1

La codificación sin un IDE es una buena forma de aprender un idioma. No obstante, no pienses que puedes continuar de esta manera cuando estás en un proyecto Java a gran escala. – jasonmp85

Respuesta

5

Puede poner sus métodos en una clase de utilidad, luego import esa clase (¡no el archivo!).

import my.useful.UtilityClass; 

... 
boolean isPrime = UtilityClass.isPrime(2); 

Cuando las cosas se ponen más complicadas, y desea volver a utilizar su material a través de múltiples proyectos, se puede poner en una jarra y añadir el frasco a los proyectos. Luego puede import y usar la clase de la misma manera que arriba.

+0

¿a qué se refiere 'my.useful.UtilityClass', el archivo' my.useful.UtilityClass.class'? – carillonator

+1

No, el archivo 'my/useful/UtilityClass.class' está relacionado con classpath :) – BalusC

+0

aha - gracias !! – carillonator

0

¿Por qué no crear un archivo jar, una biblioteca de sus propios componentes utilizados a menudo? Si compila su código java, solo incluya el archivo de utilidad en su classpath.

1

La idea de UtilityClass está bien, pero también le da la oportunidad de practicar TDD. Para un nuevo problema de Euler, crea un método vacío en tu UtilityClass donde resolverás ese problema. Luego haga un grupo de JUnit tests que use este nuevo método y dependa de que sea correcto. Todas las pruebas fallarán (o deberían, ¡porque aún no ha escrito la solución!)

¡Resuelva el problema de Euler y vea pasar las pruebas! Si desea reutilizar el código más adelante, las pruebas de la unidad lo mantendrán correcto durante la refactorización y proporcionarán un lugar para agregar casos de regresión para los errores que pueda encontrar.

+0

gracias por la introducción a TDD y JUnit. – carillonator

1

Cree un árbol de directorios con sus respuestas. my/math/*. java. Debes especificar el paquete my.math para la clase. Crear diferentes clases para diferentes conjuntos de problemas; Primes.java, Fibonacci.java, etc. Si ya resolvió el problema una vez, no lo resuelva nuevamente, a menos que su solución se haya roto.

Agregue el directorio arriba my/math a su classpath (directorio java -cp) o jar el directorio y agréguelo a su classpath.

Las bibliotecas como esta son la sangre de un proyecto exitoso. Crear y usar una biblioteca de soluciones (para las cuales el idioma aún no tiene una biblioteca) resuelve varios problemas del proyecto. Use las bibliotecas disponibles siempre que sea posible.

+0

buenos consejos detallados, gracias. – carillonator

Cuestiones relacionadas