sortArray(); return $ord; } // end :: ordena } // end :: Ordena /** * Esta é a nossa classe que faz a ordenação. Note que a interface dela * é completamente diferente da que a classe Cliente sabe falar. */ class Incompativel { /** * Variável para guardar o array a ser ordenado * @access private */ private $arr; /** * Construtor da classe. Recebe o array como parâmetro e o coloca * na variável arr. * * @access public * @param array $array Array a ser ordenado */ public function __construct( $array ) { $this->arr = $array; } // end :: __construct; /** * Ordena e retorna o array guardado em arr. * * @access public * @return array O array ordenado */ public function sortArray() { $tmp = $this->arr; sort( $tmp ); return $tmp; } // end :: sortArray } // end :: Incompativel ////////////////////////////// // Exemplo de uso $array = Array( 3,2,5,4,1 ); print "Ordenação usando a classe incompatível diretamente\n"; $inc = new Incompativel( $array ); $ord = $inc->sortArray(); print_r( $ord ); // Agora, usando a classe cliente através de um adaptador print "Fazendo a ordenação direto da classe Cliente através de um adaptador\n"; $cliente = new Cliente( $array ); ?>