Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

carcleo

Estender uma Classe ou Tabelão?

Mensagens Recomendadas

carcleo

Oi Pessoal, tenho uma Classe de imóveis. Essa Classe atualmente tem muitos atributos.

Mas existe algumas situações em que é possível estender.

Imagine uma Classe Imoveis.php com a seguinte estrutura:

<?php
Class Imoveis {

 private $idImoveis; 
 private $idTipo;  
 private $idClientes; 
 private $codigo;    
 private $dataEntrada;  
 private $dataBaixa;    
 private $endereco;  
 private $numero;  
 private $complemento;  
 private $bairro;  
 private $cidade;  
 private $estado;  
 private $descricao;  
 private $motivo;  
 private $preco;  
 private $valorVenda;  
 private $bloqueado;  
 private $oportunidade;
 private $cobertura;
 private $suite;
 private $area;
 private $quartos;  
 private $banheiros;  
 private $vagas;  

 public function __construct (
$_idTipo,
$_idClientes, 
$_codigo,
$_dataEntrada,
$_endereco,
$_numero,
$_complemento,
$_bairro,
$_cidade,
$_estado,
$_descricao,
$_preco,
$_bloqueado,
$_oportunidade,
$_area  
                              ) {
$this->idTipo = $_idTipo;
$this->idClientes = $_idClientes;
$this->codigo = $_codigo;
$this->dataEntrada = $_dataEntrada;
$this->endereco = $_endereco;
$this->numero = $_numero;
$this->complemento = $_complemento;
$this->bairro = $_bairro;
$this->cidade = $_cidade;
$this->estado = $_estado;
$this->descricao = $_descricao;
$this->preco = $_preco;
$this->bloqueado = $_bloqueado;
$this->oportunidade = $_oportunidade;
$this->area = $_area;
 }

 ////////////////////// SET'ERS  //////////////////  

 public function setIdImoveis ($_idImoveis) {
$this->idImoveis = $_idImoveis;
 }

 public function setDataBaixa ($_dataBaixa) {
$this->dataBaixa = $_dataBaixa;
 }

 public function setMotivo ($_motivo) {
$this->motivo = $_motivo;
 }

 public function setCobertura ($_cobertura) {
$this->cobertura = $_cobertura;
 }

 public function setSuite ($_suite) {
$this->idSuite = $_suite;
 }

 public function setQuartos ($_quartos) {
$this->quartos = $_quartos;
 }

 public function setBanheiros ($_banheiros) {
$this->banheiros = $_banheiros;
 }

 public function setVagas ($_vagas) {
$this->vagas = $_vagas;
 }

 ////////////////////// GET'ERS  //////////////////

 public function getIdImoveis(){
return $this->idImoveis;
 }

 public function getIdTipo(){
return $this->idTipo;
 }

 public function getIdClientes(){
return $this->idClientes;
 }

 public function getCodigo(){
return $this->codigo;
 } 

 public function getDataEntrada(){
return $this->dataEntrada;
 }

 public function getDataBaixa(){
return $this->dataBaixa;
 }

 public function getEndereco(){
return $this->endereco;
 }  

 public function getNumero(){
return $this->numero;
 }

 public function getComplemento(){
return $this->complemento;
 }

 public function getBairro(){
return $this->bairro;
 }

 public function getCidade(){
return $this->cidade;
 } 

 public function getEstado(){
return $this->estado;
 }

 public function getDescricao(){
return $this->descricao;
 }

 public function getMotivo(){
return $this->motivo;
 }

 public function getPreco(){
return $this->preco;
 }  

 public function getValorVenda(){
return $this->valorVenda;
 }

 public function getBloqueado(){
return $this->bloqueado;
 }

 public function getOportunidade(){
return $this->oportunidade;
 }

 public function getSuite(){
return $this->suite;
 }

 public function getCobertura(){
return $this->cobertura;
 }

 public function getQuartos(){
return $this->quartos;
 }

 public function getBanheiros(){
return $this->banheiros;
 } 

 public function getVagas(){
return $this->vagas;
 }

 public function getArea(){
return $this->area;
 }
}

A maioria dos atributos se referem a qualquer tipo de imóvel e apenas uns 4, cobertura, quartos, banheiros e vagas, pertencem a tres classes em especial que seriam Casas, Apartamentos e Ktinets.

As demais supostas Classes seriam terrenos, salas, fazendas e então me perco pois nem dá pra saber se vão aparecer mais tipos de imóveis uma vez que existe um cadastro de tipos de imóveis.

Será que compensa fazer "extends" ou por ter apenas 4 atributos é interessante deixá-los vazios se for o caso, na base de dados?.

Como vocês fazem?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.