Lectures

Chapter: Criteria and Principles of Good Design
Suggested Reading:

  • B. Meyer Object-Oriented Software Construction: Section 3.13.2 (pg. 3953)

Chapter: Object-Oriented Design in a Nutshell - from PDSS III CTI-RO
Suggested Reading:

  • A.J. Riel Object-Oriented Design Heuristics: Chapters 2, 3 and 5
  • R.C. Martin - Clean Code: Chapter 6
  • 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 - from PDSS III CTI-RO
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)

Chapter: Introduction to Design Patterns - from PDSS III CTI-RO
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

Chapter: Creational Patterns - from PDSS III CTI-RO
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 - from PDSS III CTI-RO
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