Composite (padrão de desenho)/Exercício 1: Verificador

From Wiki**3

< Composite (padrão de desenho)
Revision as of 02:16, 9 November 2009 by Root (talk | contribs) (New page: = Problema = Os elementos de uma colecção de nomes ('''String''') têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadore...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Problema

Os elementos de uma colecção de nomes (String) têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadores booleanos representados por objectos. Cada avaliador booleano tem uma função ok que aceita uma String e devolve um valor booleano. Implemente os seguintes predicados e operadores: NonZeroLength, LengthIsOdd, LengthIsOdd, LengthGreaterThan, LengthLesserThan, LengthEqualTo, And (operador binário que é verdadeiro quando dois elementos são verdadeiros), Or (operador binário que é falso quando dois elementos são falsos), Not (operador unário que é verdadeiro quando o seu argumento é falso).

Exemplo:

<java5> String s1 = "batata"; String s2 = "oo"; String s3 = "xyz"; Verifier v = new Or(new And(new LengthGreaterThan(5), new LengthLesserThan(8)), new LengthEqualTo(2)); boolean b1 = v.ok(s1); // true boolean b2 = v.ok(s2); // true boolean b3 = v.ok(s3); // false </java5>

Solução