Skip to content
This repository has been archived by the owner on Feb 7, 2019. It is now read-only.

Design Patterns

Dragos STOICA edited this page Sep 8, 2018 · 6 revisions

Software Design Patterns Catalog

  • Fundamental Design Patterns
    1. Delegation
    2. Interface
    3. Abstract Supercalss
    4. Interface and Abstract Class
    5. Immutable
    6. Marker Interface
    7. Proxy
  • Creational Patterns
    1. Factory Method
    2. Abstract Factory
    3. Builder
    4. Prototype
    5. Singleton
    6. Object Pool
  • Patitioning Patterns
    1. Filter
    2. Composite
    3. Read-Only Interface
  • Structural Patterns
    1. Adapter
    2. Iterator
    3. Bridge
    4. Façade
    5. Flyweight
    6. Dynamic Linkage
    7. Virtual Proxy
    8. Decorator
    9. Cache Managmenet
  • Behavioral Patterns
    1. Chain Of Responsibility
    2. Command
    3. Little Language
    4. Mediator
    5. Snapshot
    6. Observer
    7. State
    8. Null Object
    9. Strategy
    10. Template Method
    11. Visitor
  • Concurrency Patterns
    1. Single Threaded Execution
    2. Lock Object
    3. Guarded Suspension
    4. Balking
    5. Scheduler
    6. Read/Write Lock
    7. Producer-Consumer
    8. Two-Pahse Termination
    9. Double Buffering
    10. Asynchronous Processing
    11. Future
    12. Session
    13. Lock File
    14. Static Locking Order
    15. Optimistic Concurrency
    16. Thread Pool
    17. Ephemeral Cache Item
    18. Transaction Stack State
  • GRASP Patterns
    1. Low Coupling/High Cohesion
    2. Expert
    3. Creator
    4. Polymorphism
    5. Pure Fabrication
    6. Law Of Demeter
    7. Controller
  • GUI Design Patterns
    1. Window Per Task
    2. Interaction Style
    3. Explorable Interface
    4. Conversational Text
    5. Selection
    6. Form
    7. Direct Manipulation
    8. Limited Selection Size
    9. Ephemeral Feedback
    10. Disabled Irrelevant Things
    11. Supplementary Window
    12. Step-By-Step Instructions
  • Organizational Coding Patterns
    1. Accesor Method Name
    2. Anonymous Adapter
    3. Symbolic Constant Name
    4. Define Constants in Interface
    5. Switch
    6. Extend Super
    7. Intention Revealing Method
    8. Conditional Compilation
    9. Composed Method
    10. Checked versus Unchecked Exceptions
    11. Convert Exceptions
    12. Server Socket
    13. Client Socket
  • Code Optimization Patterns
    1. Hashed Adapter Objects
    2. Lazy Initialization
    3. Double Checked Locking
    4. Loop Unrolling
    5. Lookup Table
  • Robustness Coding Patterns
    1. Assertion Testing
    2. Guaranteed Cleanup
    3. Maximize Privacy
    4. Return New Objects from Accesor Method
    5. Copy Mutable Parameters
  • Testing Patterns
    1. Black Box Testing
    2. White Box Testing
    3. Unit Testing
    4. Integration Testing
    5. System Testing
    6. Regression Testing
    7. Acceptance Testing
    8. Clean Room Testing
  • Transaction Patterns
    1. ACID Transaction
    2. Composite Transaction
    3. Two-Phase Commit
    4. Audit Trail
  • Distributed Architecture Patterns
    1. Shared Object
    2. Object Request Brocker
    3. Object Replication
    4. Redundant Independent Objects
    5. Prompt Repair
    6. Mobile Agent
    7. Demilitarized Zone
    8. Process Repair
  • Distributed Computing Patterns
    1. Object Identifier
    2. Registry
    3. Protection Proxy
    4. Publish Subscribe
    5. Retransmission
    6. Mailbox
    7. Heavyweight/Lightweight Object
    8. Heartbeat
    9. Connection Multiplexing
  • Temporal Patterns
    1. Time Server
    2. Versioned Object
    3. Temporal Property
  • Database Patterns
    1. Persistence Layer
    2. CRUD
    3. Stale Object
    4. Type Convesion
    5. isDirty
    6. Lazy Retrieval
  • Enterprise Design Patterns
    1. EEIP
    2. SOA
    3. RT DP
    4. MF List
    5. TOGAF
Clone this wiki locally