Proxy Design Patterns
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package javadevjournal.design.structural.proxy;
|
||||
|
||||
/**
|
||||
* @author Kunwar
|
||||
*/
|
||||
public class EmployeeInternetAccess implements InternetAccess {
|
||||
private String employeeName;
|
||||
|
||||
@Override
|
||||
public void grantInternetAccessToEmployees() {
|
||||
System.out.println("Internet Access granted for employee: " + employeeName);
|
||||
}
|
||||
|
||||
public EmployeeInternetAccess(String empName) {
|
||||
this.employeeName = empName;
|
||||
}
|
||||
|
||||
public String getEmployeeName() {
|
||||
return employeeName;
|
||||
}
|
||||
|
||||
public void setEmployeeName(String employeeName) {
|
||||
this.employeeName = employeeName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package javadevjournal.design.structural.proxy;
|
||||
|
||||
/**
|
||||
* @author Kunwar
|
||||
*/
|
||||
public interface InternetAccess {
|
||||
public void grantInternetAccessToEmployees();
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package javadevjournal.design.structural.proxy;
|
||||
|
||||
/**
|
||||
* @author Kunwar
|
||||
*/
|
||||
public class ProxyEmployeeInternetAccess implements InternetAccess {
|
||||
private String employeeName;
|
||||
private EmployeeInternetAccess employeeInternetAccess;
|
||||
|
||||
public ProxyEmployeeInternetAccess(String employeeName) {
|
||||
this.employeeName = employeeName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void grantInternetAccessToEmployees() {
|
||||
if (getRole(employeeName) > 4) {
|
||||
employeeInternetAccess = new EmployeeInternetAccess(employeeName);
|
||||
employeeInternetAccess.grantInternetAccessToEmployees();
|
||||
} else {
|
||||
System.out.println("No Internet access granted. Your job level is below 5");
|
||||
}
|
||||
}
|
||||
|
||||
public int getRole(String empName) {
|
||||
//make a DB call to get the employee role and return it.
|
||||
return 31;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package javadevjournal.design.structural.proxy;
|
||||
|
||||
/**
|
||||
* @author Kunwar
|
||||
*/
|
||||
public class ProxyPatternClient {
|
||||
|
||||
public static final String EMPLOYEE_NAME = "Aayush Sharma";
|
||||
|
||||
public static void main(String[] args) {
|
||||
InternetAccess internetAccess = new ProxyEmployeeInternetAccess(EMPLOYEE_NAME);
|
||||
internetAccess.grantInternetAccessToEmployees();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user