Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ftuc

POO - Boas práticas

Recommended Posts

ftuc

Boa tarde,

Estou com uma dúvida no desenho de uma solução usando POO, MySql pensando sempre do ponto de vista de uma boa prática.

Tabelas:

TipoPessoa{id, descricaoTipo} ex:Aluno,Professor,Auxiliar

Pessoa{id,nome,idade,tipoPessoaId}

Objectos:

public class Pessoa{
  
}

public Aluno extends Pessoa{
  

}
public Professor extends Pessoa{
  

}
public Auxiliar extends Pessoa{
  

}

 

A minha questão é, isto que estou a fazer é viável? 

Vou usar a base da pessoa mas a nível de código quer associar diferentes comportamentos.

Imaginemos que tenho uma repository layer , crio um repository para cada tipo de objectos e filtro pelo tipo?

E se um dos tipos for apagado? Não é perigoso usar Tabelas para tipos?

 

 

 

Thanks ;)

 

 

Edited by ftuc

Share this post


Link to post
Share on other sites
M6

Viável é, estás a usar herança de POO.
Se o tipo for apagado das duas uma: ou a aplicação tem de ser revista ou tens de colocar o teu código resistente a esse tipo de situações e assumir que será uma Pessoa e nada mais.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
ftuc
Em 15/05/2019 às 10:15, M6 disse:

Viável é, estás a usar herança de POO.
Se o tipo for apagado das duas uma: ou a aplicação tem de ser revista ou tens de colocar o teu código resistente a esse tipo de situações e assumir que será uma Pessoa e nada mais.

Sim, de facto estou a usar a herança.
Pensei que fosse uma má prática.

Edited by ftuc

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.