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