luksfarris / MC851-Quack

Projeto final da disciplina de Projeto de Sistema de Informação da Unicamp
GNU General Public License v3.0
0 stars 0 forks source link

IDs numéricos NÃO devem ir para as classes *Impl #6

Closed JorgeStolfi closed 9 years ago

JorgeStolfi commented 10 years ago

Entendo que para a base MySQL é necessário atribuir identificadores numéricos a usuários, mensagens, e contatos (arestas entre usuários). Mas esses identificadores e os métodos associados devem ser definidos classes de implementação, não nas interfaces, pois são usados apenas na implementação das rotinas {initialzie} que fazem a leitura e gravação do banco MySQL.

JorgeStolfi commented 10 years ago

Ops, concluímos que quem deve atualizar o banco de dados é o {ServerImpl} e não os construtores de {User}, {Message} e {Contact}. Para que o servidor não tenha que importar métodos de {UserImpl}, o método {getNumericId} deve estar na interface {User} e não apenas na {UserImpl}.

Aliás deve ser o {ServerImpl} que atribui os {numericId}s de cada uma dessas classes, usando campos internos nextUserId, nextMessageId, etc.