Lectures 2009

Chapter: Criteria and Principles of Good Design
Suggested Reading:

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 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
  • 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.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. 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")
    • 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
  • B. Eckel - Thinking in Patterns: Visitor, Decorator

Chapter: Changing Dynamically Behavior of Objects
Suggested Reading:

  • R.C. Martin, M. Martin Agile Principles, Patterns and Practices in C#: Chapter 21 ("Command"), Chapter 22 ("Template Method and Strategy"), Chapter 31 ("Composite")
    • 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, Strategy, Composite
  • B. Eckel - Thinking in Patterns: Command, Composite

The old GOOD lectures can be found here.