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();
}

}

 

Комментарии

Популярные сообщения из этого блога

Lesson1: JDK, JVM, JRE

SE_21_Lesson_11: Inheritance, Polymorphism

SE_21_Lesson_9: Initialization Blocks, Wrapper types, String class