Objetivo: refatorar três classes duplicadas (AdminUser
, EditorUser
, GuestUser
) extraindo uma classe abstrata User
e demonstrar polimorfismo.
User.java
(abstract) com camposid
,nome
,email
,password
, getters echeckPassword
.AdminUser
,EditorUser
,GuestUser
estendendoUser
(sem duplicar estado).- Testes JUnit passando (vide
UserStructureTest
).
mvn -q test
- Clone o repositório da atividade.
- Abra no IDE (IntelliJ/VS Code/Eclipse).
- Leia o código legado em
src/main/java/cms/user/
. - Crie
User.java
(abstract), mova os campos e métodos comuns. - Faça
AdminUser/EditorUser/GuestUser
extends User (remova duplicações). - Garanta polimorfismo: nada de
instanceof
para esta atividade. - Rode os testes:
mvn -q test
. Corrija até ficar verde. - Faça commits pequenos e push.
- Verifique o Actions (CI) no GitHub para validar o autograde.
- Compila (2)
User
abstrata e correta (3)- Subclasses sem duplicação de estado (3)
- Teste de polimorfismo verde (2)
- dev.java — Classes & Objects: https://dev.java/learn/classes-objects/
- dev.java — Inheritance/Polymorphism: https://dev.java/learn/inheritance/
- JUnit 5 User Guide: https://docs.junit.org/current/user-guide/
- Maven Surefire (JUnit Platform): https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
- GitHub Classroom — Autograding: https://docs.github.com/en/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding