gedalinux
(usa Slackware)
Enviado em 28/09/2008 - 22:32h
seria bom inclusive se o pessoal do VOL usasse no codigo
pre formato, poi sempre que enviamos um codigo, fica todo
ruim,kkkk
<?php
//como somente pode haver um cpf por entidade de pessoa
//o metodo setValue($cpf) é desnecessario se seguir OOP/UML
//e pode-se passar diretamente o $cpf no construtor
class CPF{
private $value;
public function __constructor($cpf) {
$this->value = $cpf;
}
//agora que o metodo "escritor" se faz desnecessario entao
//este metodo publicante deve receber um nome que tenha sentido para a classe
//e para o que ele faz.
public function getMaskedCPF() {
return $this->maskCPF();
}
//agora que sabemos que maskCpf tem um objetivo unico e sua caracteristica é intriseca
//do Objeto CPF nada mais justo que reduzir su visibilidade ao maximo
//tornado "private"
private function maskCPF() {
// seguem os procedimentos para mascarar o conteudo de $this->value...
//neste ponto o metodo maskCpf() realiza seu papel e retorna o
//o conteudo formatodo corretamente para a camada superior
return $this->value;
}
}
//A classe RegistroAluno tambem representa um unico aluno logo haverá um
//objeto RegistroAluno() para cada aluno passado para o SERVIDOR
//mesmo que seja um registro completo de alunos
//respeitando a OOP devemos tornar o nome da classe segundo su orientacao
//no mundo dos negocios e renomearemos simplesmente para Aluno
//Agora Sim ela representa um aluno e nao um registro de aluno o que para a
//analise é "outra coisa";
class Aluno{
private $cpf;
private $nome;
public function __construct($nome,$cpf) {
$this->nome = $nome;
//aqui vc tem uma associacao tipo composicao -FALANDO EM UML
$this->cpf = new CPF($cpf);
}
//metodo publicante
public function getCPF() {
return $this->cpf->getMaskedValue();
}
//metodo publicante
public function getNome(){
return $this->nome;
}
}
//e no uso ...
$aluno = new Aluno("Nome do aluno","12345678901");
//agora veja um uso limpo e claro do seu codigo para qualquer programador de
//verdade ler e entender e super desacoplado e coeso.
print "CPF: ".$aluno->getCPF() ."\n";
print "NOME: ". $aluno->getNome() ."\n";
?>