Композиция
Данные о прошлых занимаемых должностях являются частью данных о сотруднике, таким образом между ними связь целое-часть и в то же время, данные о прошлых должностях не могут существовать без объекта типа «Employee». Уничтожение объекта «Employee» должно привести к уничтожению объектов «pastPosition». Класс «PastPosition»: private class PastPosition{ private String name; private Department department; public PastPosition(String position, Department dep){ name = position; department = dep; } public void setName(String newName){ name = newName; } public String getName(){ return name; } public void setDepartment(Department d){ department = d; } public Department getDepartment(){ return department; }}
...private Set pastPosition = new HashSet();...public void setPastPosition(PastPosition p){ pastPosition.add(p);}public Set getPastPosition(){ return pastPosition;}public void deletePastPosition(PastPosition p){ pastPosition.remove(p);}...
Применение: // изменяем должностьsysEngineer.setPosition("Сторож");// смотрим ранее занимаемые должности:System.out.println("В прошлом работал как:");Iterator iter = sysEngineer.getPastPosition().iterator();while(iter.hasNext()){ System.out.println(((PastPosition) iter.next()).getName());}
|