Лектори | Иван Енев (ръководител проекти във Верео Текнолоджис), Дамян Митев (докторант във ФМИ) |
Анотация |
Целта на курса Шаблони за дизайн (Design Patterns) е да запознае студентите с най-използваните шаблони за създаване на елегантен обектно-ориентиран дизайн. Шаблоните за дизайн са общо повтаряеми решения на често срещани проблеми в софтуерния дизайн. Студентите ще бъдат запознати с техники за създаване на гъвкав софтуер, който може лесно да бъде повторно използван. Примерите в курса ще бъдат имплементирани на Java. |
Изисквания за курса |
Познания по обекно-ориентиран дизайн и обектно-ориентирано програмиране, познания по Java, подходящ за всички информатици (от I курс до магистри) |
Условия за поставяне на крайна оценка |
Домашни работи – 20% Разработка на тема – 20% Презентация на тема – 20% Разработка на проект – 20% Презентация на проект – 20% |
Съдържание |
1. Въведение. Какво е шаблон? Произход. Структура. Имена. Диаграми. Анти-шаблони. Примери. |
2. Шаблони строители. Abstract factory. Builder. Factory method. Prototype. Singleton. |
3. Структурни шаблони. Adapter. Bridge. Composite. |
4. Структурни шаблони. Decorator. Facade. Flyweight. Proxy. |
5. Поведенчески шаблони. Command. Interpreter. Iterator. |
6. Поведенчески шаблони. Mediator. Memento. Observer. |
7. Поведенчески шаблони State. Strategy. Template method. Visitor. |
8. J2EE шаблони. Контекст на J2EE шаблони. EJB/JPA/JEE. Data Access Objects. Fast-Lane Reader. Page-by-Page Iterator. Session Facade. Value Object. |
9. Refactoring. |
10. Презентации на проекти, поставяне на крайни оценки. |
Литература |
Design Patterns, 2004 by Gang-Of-Four Thinking In Patterns, 2001 by Bruce Eckel Refactoring To Patterns, 2004 by Joshua Kerievsky |