Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Estender uma Classe ou Tabelão?

$
0
0
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:

Código (PHP):
<?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?

Viewing all articles
Browse latest Browse all 14700