Similar presentations:
3_PRO_Объектно_ориентированный_дизайн
1. 3. PRO Объектно-ориентированный дизайн
3. PRO Объектноориентированный дизайн2. Работа с требованиями
Существительныепомогают
формировать
классы: Flight,
Reservation,
Customer, Plane…
Глаголы –
отношения между
ними: Contains,
Manages, Makes-a
3. Определение ассоциации между классами
Временная или постоянная связь (uses-a) между классами называетсяассоциацией
Название
Название описывается
глаголом
Множественность
Рекурсия
4. Кратность ассоциации
Сколько объектов одного классасвязаны с объектами другого класса в
конкретный момент времени
5. Варианты видимости классов А и B
6.
Класс содержит или полагается (has-a),как одну из частей, другой класс.
Композиция - класс содержит,
как свою деталь, другой
объект.
Агрегация - объект-полагается,
делегирует часть работы
независимому объекту
(внешняя зависимость).
7. Композиция (Composition)
• Отношение часть-целое (has-a): целоеи часть не живут по отдельности
• Связь – стабильная и долгосрочная
8. Часть создается в конструкторе или в момент использования (just-in-time):
9. Агрегация
• Обладатель и предметмогут существовать друг
без друга
• Предмет создается вне
обладателя и передается
параметром конструктора,
свойства или метода
• Может быть заменен на
другой => Больше гибкости
• Студент владеет
калькулятором и передает
ему какие-то задачи.
10. Has-a или Holds-a?
• Has-a, если целое не существует безсвоей части и наоборот
• Has-a, если состояние целого зависит
от состояния своей части
• Has-a, если целое ответственно за
создание своей части
• Чем связь слабее и краткосрочнее,
тем вероятнее holds-a
11. Наследование
12. Наследник – расширяет родителя
Может применяться вместо него (но не наоборот)13. Доступ к данным родителя
• Полный доступ, кроме закрытых (private) полей и методов• Родитель может открыть свою часть только наследникам, через
защищенность (protected) своих данных
• Родитель может приказать детям менять переопределять детям
свои методы (virtual)
• Дети должны переопределять виртуальные методы (override),
таким образом меняя
изначальное поведение родителя
• Можно отказаться от
виртуального метода родителя,
но только “итальянской забастовкой”
14. UML обозначения ассоциации
15.
• Новые клиенты, которыехотят забронировать
авиабилеты, должны
заполнить регистрационную
форму, указав свое имя,
адрес, название компании,
номер телефона и адрес
электронной почты.
• Клиент классифицируется
либо как корпоративный
клиент, либо как розничный
клиент.
• Клиенты могут искать рейсы
на основе места назначения
и времени вылета.
• Клиенты могут
забронировать авиабилеты,
указав номер рейса и
количество запрашиваемых
мест.