Proxy Design Patterns

This commit is contained in:
Kunwar
2022-07-23 16:36:12 +05:30
parent c83d39750b
commit f8310a25ac
4 changed files with 75 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -0,0 +1,8 @@
package javadevjournal.design.structural.proxy;
/**
* @author Kunwar
*/
public interface InternetAccess {
public void grantInternetAccessToEmployees();
}

View File

@@ -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;
}
}

View File

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