1. Jonathan Lara V.
  2. are
    1. Techniques to reuse ideas
    2. Provide standard solutions
  3. parts
    1. Name
    2. Context
    3. Problem (forces)
    4. Solution
    5. Consecuences
  4. Flavors
    1. Architectural styles
      1. Interconecction between systems level
      2. Active Protocols interaction
    2. Design Patterns
      1. Components inside the software
    3. Language Idiom
      1. Specific best practices per language
  5. Benefits
    1. Direct solution to the problem
    2. No need to reinvent the wheel
    3. Simple and elegant solution
    4. Provides the basis for a common language amongst software developers
    5. Base for an adapter solution
  6. Type
    1. Creational
    2. Structural
    3. Behavioral
  7. Anti-Patterns
    1. Describe a bad solution to a problem which resulted in a bad situation
    2. Antipattern is a frequently used, but largely ineffective solution to a problem
    3. The term was originally used to refer to a design pattern gone wrong
    4. Similarly to patterns, use of antipatterns has extended to all software development phases and beyond
    5. They typically capture refactored solution descriptions, showing how to change the antipattern into a better solution
    6. more info...
  8. Categories
    1. Advanced design patterns
      1. Xml patterns
        1. types
          1. Tree based
          2. advantages
          3. DOM tree is easily traversable since it is all in RAM
          4. fast search for information
          5. disadvantages
          6. not good for large documents
          7. Event based
          8. advantages
          9. good for large documents
          10. document can be processed as is being parsed
          11. has many performance benefits
          12. disadvantages
          13. complex parsing state has to be kept, most likely with the aide of a helper tool
        2. Structural patterns
          1. Metadata first
          2. Collection Element
          3. Common attributes
          4. Flyweight
          5. ...more patterns
      2. Concurrency/Distributed
        1. Active Object
        2. Double-checked locking
        3. Monitor object
        4. Scheduler
        5. Threat pool
        6. Refactor
      3. Event handling/Asynchronous messaging
        1. Event notifications
        2. Asynchronous completion token
        3. Acceptor-Connector
        4. Proactor
      4. UI-Patterns
        1. Target-Action
        2. Delegation