Composite et Visitor Composite Visitor
1. L’exemple initial
Le code de l’exemple est constitué de deux classes : la classe Employee qui représente des employés et la classe Subsidiary qui représente des sociétés.
Le code de la classe Employee, précédé de celui de l’énumération EmployeeType se trouve ci-dessous. La classe introduit les accesseurs en lecture et en écriture des attributs wage et employeeType (de type EmployeeType). Elle offre également la fonction isStaffEmployee qui indique si un employé fait partie du staff (au sens de l’équipe de direction) ainsi que la fonction isAdministrativeEmployee qui précise s’il est un employé administratif.
public enum EmployeeType {
STAFF, ADMINISTRATIVE, TECHNICAL
}
public class Employee {
protected long wage;
protected EmployeeType employeeType;
public Employee(long wage, EmployeeType employeeType) {
this.wage = wage;
this.employeeType = employeeType;
}
public long getWage() {
return wage;
}
public EmployeeType getEmployeeType() {
return employeeType; ...