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

From Wiki**3

< Composite (padrão de desenho)
(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...)
 
(Problema)
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 03: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