Skip to content
DiegoS edited this page Dec 15, 2017 · 11 revisions

Competitor Pattern

Donde surje

Dada una colección de elementos queremos reducirla (reduce - PF) a un único elemento de la colección buscando:

  • La lógica de la selección o la política por la cuál un elemento prevalece es potestad de este (OnlyCanBeSent, CantSentXunits, etc).
  • Evitar la utilización del if debido a como afecta negativamente la métrica de cobertura (ver aquí los efectos negativos)

Código a partir del cuál salimos en búsqueda de la mejora:

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;
};

Dos estratégias posibles

Clone this wiki locally