Hola, al lanzar una excepción en la clase ProxyServicio se puede decir que no esta respetando un principio SOLID??.
saludos.
saludos.
Examen
Examen final del curso
2 comentario(s)
Para mejorar la legibilidad del código, les comparto una implementación que realice con Enums
public enum LevelPermission {
ADMIN,
NORMAL
}
public class User {
private LevelPermission levelPermission;
public User(LevelPermission levelPermission) {
this.levelPermission = levelPermission;
}
public LevelPermission getLevelPermission() {
return this.levelPermission;
}
public void setLevelPermission(LevelPermission levelPermission) {
this.levelPermission = levelPermission;
}
}
public class Application {
public static void main(String[] args) {
User admin = new User(LevelPermission.ADMIN);
IService service = new ProxyService(new Service(), admin);
service.read();
service.create();
service.update();
service.delete();
}
}
public class ProxyService implements IService {
private IService service;
private User user;
public ProxyService(IService service, User user) {
this.service = service;
this.user = user;
}
public void create() {
if(this.user.getLevelPermission() == LevelPermission.ADMIN) {
this.service.create();
}
else {
throw new UnsupportedOperationException("Error de serguridad!");
}
}
public void read() {
this.service.read();
}
public void update() {
if(this.user.getLevelPermission() == LevelPermission.ADMIN) {
this.service.update();
}
else {
throw new UnsupportedOperationException("Error de serguridad!");
}
}
public void delete() {
if(this.user.getLevelPermission() == LevelPermission.ADMIN) {
this.service.delete();
}
else {
throw new UnsupportedOperationException("Error de serguridad!");
}
}
}