Categories
Algorithms & Design Design Pattern

Null Pattern

Employee.java

public class Employee {
	protected String firstName,lastName;
	protected String employeeId;
	public Employee(String firstName, String lastName,String employeeId){
		this.firstName=firstName;
		this.lastName=lastName;
		this.employeeId=employeeId;
	}

	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

	public String getfirstName() {
		return firstName;
	}

	public void setlastName(String lastName) {
		this.lastName = lastName;
	}
}

RegisteredEmployee.java

public class RegisteredEmployee extends Employee {
	
	public RegisteredEmployee(String firstName, String lastName,String employeeId){
		super(firstName,lastName,employeeId);
	}
	
	@Override
	public String toString(){
		return "firstName :"+firstName+", lastName : "+lastName;
	}

}

NullEmployee.java

public class NullEmployee extends Employee{

	public NullEmployee(){
		super(null,null,null);
	}
	public String toString(){
		
		return "Employee does not exist";
	}
}

EmployeeRegister.java

import java.util.HashMap;
import java.util.Map;

public class EmployeeRegister {

	private Map employeeList;
	
	public EmployeeRegister(){
		employeeList = new HashMap();
	}
	public Employee getEmployee(String employeeId){
		
		Employee employee = employeeList.get(employeeId);
		if(employee==null)
			employee = new NullEmployee();
		return employee;
	}
	
	public void registerEmployee(Employee employee){
		if(employee instanceof NullEmployee)
			return;
		employeeList.put(employee.getEmployeeId(), employee);
	}
}

NullPointerDemo.java

public class NullPointerDemo {

	public static void main(String[] args) {

		//Prepare Employee register
		EmployeeRegister register = new EmployeeRegister();
		
		//employee1
		register.registerEmployee(new RegisteredEmployee("Ina","Kose","111"));
		register.registerEmployee(new RegisteredEmployee("Mina","Mose","112"));
		register.registerEmployee(new RegisteredEmployee("Hina","Gose","113"));
		register.registerEmployee(new RegisteredEmployee("Tina","Bose","114"));
		
		//get Employee 113
		System.out.println("Employee 113 :"+register.getEmployee("113"));
		System.out.println("Employee 112 :"+register.getEmployee("112"));
		System.out.println("Employee 115 :"+register.getEmployee("115"));
	}

}

Output

Leave a comment

Design a site like this with WordPress.com
Get started