Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Композиция. Предположим, что одним из требований к нашей системе является требование о том, чтоб хранить данные о прежней занимаемой должности на предприятии







Предположим, что одним из требований к нашей системе является требование о том, чтоб хранить данные о прежней занимаемой должности на предприятии.
Введем новый класс «pastPosition». В него, помимо свойства «имя»(name), введем и свойство «department», которое свяжет его с классом «Department».

Данные о прошлых занимаемых должностях являются частью данных о сотруднике, таким образом между ними связь целое-часть и в то же время, данные о прошлых должностях не могут существовать без объекта типа «Employee». Уничтожение объекта «Employee» должно привести к уничтожению объектов «pastPosition».

Рис. 6 — Композиция

Класс «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; }}


В класс Employee добавим свойства и методы для работы с данными о прошлой должности:

 

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

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.