Closed JorgeStolfi closed 9 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.
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.