Advertisement
atanasovetr

CompositePattern_GFG

May 25th, 2021
797
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.13 KB | None | 0 0
  1. ///////////////////////////////Interface Component
  2.  
  3. public interface Employee
  4. {
  5.     public void showEmployeeDetails();
  6. }
  7.  
  8. ///////////////////////////////Leaf
  9.  
  10. public class Developer implements Employee
  11. {
  12.     private String name;
  13.     private long empId;
  14.     private String position;
  15.  
  16.     public Developer(long empId, String name, String position)
  17.     {
  18.         this.empId = empId;
  19.         this.name = name;
  20.                 this.position = position;
  21.     }
  22.      
  23.     @Override
  24.     public void showEmployeeDetails()
  25.     {
  26.         System.out.println(empId+" " +name+);
  27.     }
  28. }
  29.  
  30. ///////////////////////////////Composite
  31.  
  32. import java.util.ArrayList;
  33. import java.util.List;
  34.  
  35. public class CompanyDirectory implements Employee
  36. {
  37.     private List<Employee> employeeList = new ArrayList<Employee>();
  38.        
  39.     @Override
  40.     public void showEmployeeDetails()
  41.     {
  42.         for(Employee emp:employeeList)
  43.         {
  44.             emp.showEmployeeDetails();
  45.         }
  46.     }
  47.        
  48.     public void addEmployee(Employee emp)
  49.     {
  50.         employeeList.add(emp);
  51.     }
  52.        
  53.     public void removeEmployee(Employee emp)
  54.     {
  55.         employeeList.remove(emp);
  56.     }
  57. }
  58.  
  59. ///////////////////////////////Client
  60.  
  61. public class Company
  62. {
  63.     public static void main (String[] args)
  64.     {
  65.         Developer dev1 = new Developer(100, "Lokesh Sharma", "Pro Developer");
  66.         Developer dev2 = new Developer(101, "Vinay Sharma", "Developer");
  67.         CompanyDirectory engDirectory = new CompanyDirectory();
  68.         engDirectory.addEmployee(dev1);
  69.         engDirectory.addEmployee(dev2);
  70.          
  71.         Manager man1 = new Manager(200, "Kushagra Garg", "SEO Manager");
  72.         Manager man2 = new Manager(201, "Vikram Sharma ", "Kushagra's Manager");
  73.          
  74.         CompanyDirectory accDirectory = new CompanyDirectory();
  75.         accDirectory.addEmployee(man1);
  76.         accDirectory.addEmployee(man2);
  77.      
  78.         CompanyDirectory directory = new CompanyDirectory();
  79.         directory.addEmployee(engDirectory);
  80.         directory.addEmployee(accDirectory);
  81.         directory.showEmployeeDetails();
  82.     }
  83. }
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement