Design Pattern - Proxy Pattern
package com.proxy;
public interface OfficeInternetAccess {
public void grantInternetAccess();
}
package com.proxy;
public class RealInternetAccess implements OfficeInternetAccess{
private String employeeName;
public RealInternetAccess(String employeeName){
this.employeeName = employeeName;
}
@Override
public void grantInternetAccess() {
System.out.println("Internet Access granted for employee: " + employeeName);
}
}
package com.proxy;
public class ProxyInternetAccess implements OfficeInternetAccess{
private String employeeName;
private RealInternetAccess realaccess;
public ProxyInternetAccess(String employeeName){
this.employeeName = employeeName;
}
@Override
public void grantInternetAccess() {
if(getRole(employeeName) > 4){
realaccess = new RealInternetAccess(employeeName);
realaccess.grantInternetAccess();
} else {
System.out.println("No internet access granted. Your job level is below 5");
}
}
public int getRole(String employeeName){
// Check role from the database based on Name and designation
// return job level or job designation.
return 9;
}
}
package com.main;
import com.proxy.OfficeInternetAccess;
import com.proxy.ProxyInternetAccess;
public class Main {
public static void main(String[] args) throws Exception {
OfficeInternetAccess access = new ProxyInternetAccess("Parvin Etibarli");
access.grantInternetAccess();
}
}
Комментарии
Отправить комментарий