Vamos criar um sistema de gestão de livros, que depois permite que sejam também Revistas, DVDs, etc.
- Esta classe deve ser responsável por adicionar, remover e atualizar livros no inventário da biblioteca.
- Garantir que esta classe adira ao SRP, focando-se exclusivamente nas tarefas de manutenção de livros.
- A classe Autor deve conter propriedades como Nome, Biografia e uma Lista de Livros.
- A classe de Gestão de Autores deve tratar de adicionar, atualizar e eliminar autores, aderindo ao SRP.
- Atualizar a classe de Manutenção de Livros para garantir que, quando um livro é adicionado ou atualizado, o autor correspondente é vinculado a este livro.
- Por exemplo, Editores, Ilustradores. Usar o OCP para garantir que estes novos tipos possam ser adicionados sem modificar as classes de gestão existentes.
- Por exemplo filtragem por autor, tipo de item, etc. Considerar como desenhar esta extensão para cumprir com o SRP e OCP.