Former Lectures
Chapter: Criteria and Principles of Good Design
Suggested Reading:
- B. Meyer – Object-Oriented Software Construction: Section 3.1–3.2 (pg. 39–53)
- E.V. Berard – Abstraction, Encapsulation, and Information Hiding
- R.C. Martin – Patterns of Learning
Chapter: Object-Oriented Design in a Nutshell
Suggested Reading:
- A.J. Riel – Object-Oriented Design Heuristics: Chapters 2, 3 and 5
Chapter: Principles and Rules of Object-Oriented Design
Suggested Reading:
- R.C. Martin, M. Martin – Agile Principles, Patterns and Practices in C#, Chapters 7-11
- alternatively R.C. Martin – Agile Software Development. Principles Patterns and Practices, Chapters 7-11
- A.J. Riel – Object-Oriented Design Heuristics: Chapters 4
- K.J. Lieberherr, I.M.Holland – Assuring Good Style for Object-Oriented Programs
- A.Hunt, D. Thomas - The Pragmatic Programmer: From Journeyman to Master: Chapter 4 (Design by Contract), Chapter 5 (Decoupling and the Law of Demeter)
- B. Meyer – Object-Oriented Software Construction: Section 11.1–11.6
Chapter: Introduction to Design Patterns
Suggested Reading:
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software: Chapter 1
- E. Freeman, E. Freeman, B.Bates, K.Sierra - Head First Design Patterns: Chapter 1,2
- F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal - Pattern-Oriented Software Architecture Volume 1; A System of Patterns: Chapter 1
Chapter: Creational Patterns
Suggested Reading:
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software: Creational Patterns: Factory Method, Prototype, Abstract Factory, Singleton
- E. Freeman, E. Freeman, B.Bates, K.Sierra - Head First Design Patterns: Chapter 4,5
- B. Eckel - Thinking in Patterns: Chapter 5 – Factories: Encapsulating Object Creation
Chapter: Well-Mannered Dealing with Requests
Suggested Reading:
- R.C. Martin, M. Martin – Agile Principles, Patterns and Practices in C#: Chapter 21 ("Command"), Chapter 31 ("Composite"), Chapters 35 ("Visitor", "Acyclic Visitor", "Decorator")
- alternatively R.C. Martin – Agile Software Development. Principles Patterns and Practices: same chapters as above
- E. Freeman, E. Freeman, B.Bates, K.Sierra - Head First Design Patterns: Chapter 6 ("Command")
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software: Command, Composite, Chain of Responsibility, Visitor, Decorator
- B. Eckel - Thinking in Patterns: Command, Composite, Chain of Responsibility, Visitor, Decorator
Chapter: Changing the Guts of an Object
Suggested Reading:
- R.C. Martin, M. Martin – Agile Principles, Patterns and Practices in C#: Chapter 26.1 ("Proxy"), Chapter 29 ("State")
- alternatively R.C. Martin – Agile Software Development. Principles Patterns and Practices: same chapters as above
- E. Freeman, E. Freeman, B.Bates, K.Sierra - Head First Design Patterns: Chapter 10 ("State"); Chapter 11 ("Proxy")
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software: Strategy, State, Proxy, Bridge
- B. Eckel - Thinking in Patterns: State, Proxy, Bridge