Tipos de asociación:
La composición está relacionada con el valor del objeto, es decir el objeto que lo contiene se encarga de su ciclo de vida (inicialización, mantenimiento y limpieza)
La agregación está relacionada con la referencia a un objeto:
viernes, 4 de abril de 2008
Tipos de asociación: Composición - Agregación - Dependencia
Publicado por
Juan Antonio Ruz
en
3:43
1 comentarios
Categorías: java
jueves, 27 de marzo de 2008
Programación pesimista, programación orientada a excepciones (anomalías)
Una excepción en java es simplemente una clase que hereda de la clase java.lang.Exception que extiende a su vez de la clase java.lang.Throwable así que empezamos echando un vistazo a el API de Throwable: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html
Como se comenta en la descripción de la clase:
Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement.
Se puede apreciar que las clases que herendan de Throwable son Error y Exception. Mientras que si lanzamos un error no hay que declarlo en la definición del método, si lanzamos una exception si hay que declarlo:
Aunque no estamos obligados a declarar el error en la definición del método lo podríamos haber hecho de las siguientes maneras:
- public void pruebaLanzaError() throws Error
- public void pruebaLanzaError() throws Throwable
Si entendemos la excepción como un comportamiento anómalo de nuestro programa (o parte de programa), podemos tener en cuenta todos las anomalías de nuestro programa como pueden ser: objetos nulos, valores negativos ...
y actuando en consecuencia es decir lanzando excepciones concretas respondiendo a comportamientos anomalos concretos.
Publicado por
Juan Antonio Ruz
en
4:20
1 comentarios
Categorías: excepciones, java
jueves, 24 de enero de 2008
Script linux para recorrer directorio y cambiar nombre a archivos
Bueno parecía más difícil de lo que al final fue:
la función para recorrer directorios es la muy famosa ls, la salida que da se lo pasamos a un bucle while y en cada iteración hacemos un cp ___ ____
Al pasarle variables al script las recogemos por el orden de entrada es decir si ejecutamos el script
# hola.sh Manolo
pues dentro del script accedemos a la variable Manolo con $1 ya que $0 es el nombre del script="hola.sh"
así me ha quedado a mi:
ls $2 |
while read name
do
echo "nombre: $name Extension:$1 Directorio: $2"
cp $2/$name $2/$1$name
done
y la llamada
cambiarNombre.sh Miniatura_ /prueba
y tendría el resultado de anteponer la palabra "Miniatura_" a el nombre de los archivos existentes en el directorio prueba
Publicado por
Juan Antonio Ruz
en
5:49
1 comentarios
Categorías: linux
miércoles, 16 de enero de 2008
Obtener un string con el mensaje (stacktrace) de una excepción
Exception ex = new Exception("something went wrong");
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
String stacktrace = sw.toString();
System.out.println("stacktrace = " + stacktrace);
Conseguido en
http://www.jguru.com/faq/view.jsp?EID=571084
Publicado por
Juan Antonio Ruz
en
11:54
1 comentarios
Categorías: java
martes, 13 de noviembre de 2007
linux script copias seguridad
estos scripts se activan desde el archivo crontab
copidatabases.sh (mysql)
#!/bin/sh
fecha=$(date +%y-%m-%d-%H-%M)
DIRECTORIO_INICIAL=/var/lib/mysql
DIRECTORIO_FINAL=$1
mkdir $DIRECTORIO_FINAL/$fecha
for a in `ls $DIRECTORIO_INICIAL`
do
fname=`echo $a | tr A-Z a-z`
echo $DIRECTORIO_INICIAL/$a $DIRECTORIO_INICIAL/$fname
/usr/bin/mysqldump -u ADMIN --password=nickel $fname>$DIRECTORIO_FINAL/$fecha/$fname.sql
done;
exit 0
copi.sh (directorios a incluir y tar)
#!/bin/sh
DIAS=$3
DIRECTORIO_INICIAL=$1
DIRECTORIO_FINAL=$2
fecha=$(date +%y-%m-%d-%H-%M)
find $DIRECTORIO_INICIAL -mtime -$DIAS \! -type d | cat > $DIRECTORIO_FINAL$fecha.txt
tar -cv -T $DIRECTORIO_FINAL$fecha.txt -f $DIRECTORIO_FINAL$fecha.tar
Publicado por
Juan Antonio Ruz
en
3:18
1 comentarios
Categorías: Configuraciones Seguridad Servidor
jueves, 8 de noviembre de 2007
cache de explorer no busca actualizacion de informacion
En herramientas>opciones de internet
pestaña general, información relativa a archivos temporales de internet> configuración
Comprobar: automaticamente
o eso o mandar un parametro en el get que sea por ejemplo la hora
Publicado por
Juan Antonio Ruz
en
5:52
0
comentarios
Categorías: cache, explorer, navidad, Soluciones
miércoles, 24 de octubre de 2007
enum con propiedades, para controlar los mensajes al usuario
http://java.sun.com/docs/books/tutorial/java/javaOO/enum.html
public enum ReflectionMensaje {
ILEGAL_ACCESO("ilegal acceso al metodo: "),
METODO_INEXISTENTE("No existe el metodo: "),
EXCEPCION_INVOCACION("excepcion de invocacion en el metodo: ");
private final String mensaje; // in kilograms
ReflectionMensaje(String m) {
this.mensaje = m;
}
public String toString() {
return mensaje; //To change body of overridden methods use File | Settings | File Templates.
}
}
Publicado por
Juan Antonio Ruz
en
12:28
0
comentarios
Categorías: java

