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

From Wiki**3

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...
 
Root (talk | contribs)
Line 1: Line 1:
= Problema =
= 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).
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''', '''LengthIsEven''', '''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:
Exemplo:

Revision as of 01:57, 9 November 2009

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, LengthIsEven, 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