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
- R.C. Martin - Clean Code: Chapter 6
- 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 5 (Decoupling and the Law of Demeter)
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 and 28
- alternatively R.C. Martin – Agile Software Development. Principles Patterns and Practices, Chapters 7-11 and 28
- A.J. Riel – Object-Oriented Design Heuristics: Chapters 4
- A.Hunt, D. Thomas - The Pragmatic Programmer: From Journeyman to Master: Chapter 4 (Design by Contract)
- 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. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software - Observer, Template Method
- 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: Adding Dynamically Behavior to Objects
Suggested Reading:
- R.C. Martin, M. Martin – Agile Principles, Patterns and Practices in C#: Chapters 35 ("Visitor", "Acyclic Visitor", "Decorator"), Chapter 31 ("Composite"), Chain of Responsibility, Command
- alternatively R.C. Martin – Agile Software Development. Principles Patterns and Practices: same chapters as above
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software: Visitor, Decorator, Composite, Strategy, Chain of Responsibility, Command
- B. Eckel - Thinking in Patterns: Visitor, Decorator, Composite, Strategy, Chain of Responsibility, Command
The old GOOD lectures can be found here.