Design Patterns |
ter |
||||||||||||||
Teaching Staff in Charge |
|
Aims |
At the completion of this course, the students will be able to:
a) know and understand the core design patterns b) identify the design patterns in a real-world problem c) use appropriate design patterns in solving real-world problems d) build reusable designs |
Content |
1. Design patterns. General issues
1.1. Historical aspects 1.2. The design pattern concepts 1.3. Pattern classification 2. Creational patterns 2.1. Abstract Factory 2.2. Builder 2.3. Factory Method 2.4. Prototype 2.5. Singleton 3. Structural patterns 3.1. Adapter 3.2. Bridge 3.3. Composite 3.4. Decorator 3.5. Facade 3.6. Flyweight 3.7. Proxy 4. Behavioral patterns 4.1. Chain of Responsibilities 4.2. Command 4.3. Interpreter 4.4. Iterator 4.5. Mediator 4.6. Memento 4.7. Observer 4.8. State 4.9. Strategy 4.10. Template Method 4.11. Visitor Each design pattern presentation follows the following scheme: intent, the problem to be solved, the structure (including UML diagrams), examples (a structural and at least one real-life example). Lab activities Design patterns implementation issues and using them in solving real-world problems. Each problem solution will be implemented in at least two different programming languages (Java, C#, Visual Basic 6.0, Visual Basic .NET). The lectures (ppt slides) and lab material will be available on the Computer Science Department's server, in the folder ..\labor\romana\an4\depa |
References |
1. COOPER, JAMES W.: The Design Patterns Java Companion, Addison-Wesley, 1998.
2. COPLIEN, JAMES: Multi-Paradigm Design, PhD Thesis, Vrije Universiteit Brussel, 2000 [http://www.netobjectives.com/download/CoplienThesis.pdf]. 3. ECKEL, BRUCE: Thinking in Patterns with Java [http://www.bruceeckel.com]. 4. GAMMA, ERICH - HELM, RICHARD, - JOHNSON, RALPH - VLISSIDES, JOHN: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. 5. MARTIN, ROBERT CECIL: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2002. 6. STELTING, STEPHEN - MAASSEN, OLAV: Applied Java Patterns, Prentice Hall, 2001. 7. Data and Object Factory Patterns, [http://www.dofactory.com/patterns/Patterns.aspx] |
Assessment |
The final mark is computed as follows, on a 10-point scale:
1pt by default 1pt lab attendance 4pt lab activity (homework, implementation issues, schedule conformance etc.) 4pt written exam - scheduled in the last week of the term. |