-
Notifications
You must be signed in to change notification settings - Fork 0
Java Sin Patron
DiegoS edited this page Dec 15, 2017
·
5 revisions
public void testBizAlwaysWin() {
Entity[]arrayOfEntities = {
new EntityBiz(),
new EntityQux()
};
EntityLeakCollection ec = new EntityLeakCollection(arrayOfEntities);
assertEquals(new EntityBiz(), ec.winner());
} public Entity winner() {
Entity result = null;
for( Entity e : this.entities) {
if ( e.happens() ) {
result = e;
break;
}
}
if ( result == null ) {
result = new NullLeakEntity();
}
return result;
};La estrategia que seguimos aquí es encontrar cuál entidad ocurre primero mediante la implementación del método happens. Veamos como lo implementa cada entidad.
public class EntityBiz implements Entity {
@Override
public boolean happens() {
return true;
}
// ...
}public class EntityQux implements Entity {
@Override
public boolean happens() {
return false;
}
}public class NullLeakEntity implements Entity {
@Override
public boolean happens() {
return false;
}
}Buscamos siempre devolver una Entity para evitar la utilización de null haciendo uso del patrón Null.
En este caso la implementación es obvia. Se trata de hacer una búsqueda en la colección utilizando el criterio oculto en happens.
Código aquí
