Lectures

Chapter: Criteria and Principles of Good Design
Suggested Reading:

Chapter: Object-Oriented Design in a Nutshell
Suggested Reading:

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.111.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.