Software Architecture and Design Patterns

  1. Behavioral Design Patterns
    1. Chain of Responsibility Pattern
      1. Request Handling Chain
        1. Dynamic Chain Configuration
          1. Handler Hierarchy
          2. Command Pattern
            1. Request Encapsulation
              1. Undo Operations
                1. Macro Commands
                  1. Queuing and Logging
                  2. Interpreter Pattern
                    1. Language Grammar
                      1. Abstract Syntax Tree
                        1. Expression Evaluation
                        2. Iterator Pattern
                          1. Collection Traversal
                            1. Iterator Interface
                              1. Internal versus External Iteration
                              2. Mediator Pattern
                                1. Object Interaction Management
                                  1. Loose Coupling
                                    1. Centralized Control
                                    2. Memento Pattern
                                      1. State Capture
                                        1. State Restoration
                                          1. Encapsulation Preservation
                                          2. Observer Pattern
                                            1. Subject-Observer Relationship
                                              1. Notification Mechanism
                                                1. Push versus Pull Model
                                                  1. Event Handling
                                                  2. State Pattern
                                                    1. State-Dependent Behavior
                                                      1. State Transitions
                                                        1. Context Management
                                                        2. Strategy Pattern
                                                          1. Algorithm Encapsulation
                                                            1. Runtime Algorithm Selection
                                                              1. Policy Objects
                                                              2. Template Method Pattern
                                                                1. Algorithm Framework
                                                                  1. Hook Methods
                                                                    1. Inversion of Control
                                                                    2. Visitor Pattern
                                                                      1. Operation Distribution
                                                                        1. Double Dispatch
                                                                          1. Element Hierarchy