Flashcards
Patterns
Cards in this deck (58)
- 1IteratorAccess all elements of arbitrary collections in the same way
- 2AdapterWrap around a class to make it compatible to another interface
- 3FacadeProvide a higher-level interface to a system
- 4DecoratorExtend the functionality of an object, while maintaining the same interface
- 5ProxyProvide a placeholder for another object to control it
- 6LayersSplit your system into layers based on abstraction level
- 7BrokerManage dynamic communication between clients and servers in distributed systems
- 8Pipes & FilesForm a sequence of processing steps using a common interface
- 9Master-SlaveDistribute work amongst some helpers
- 10Client-ServerLet clients send requests to servers which answers with responses
- 11Factory MethodDelegate the creation of objects to someone else
- 12Abstract FactoryCreate whole families of related objects
- 13BuilderSplit up creation into multiple steps
- 14SingletonAllow only one instance of an object
- 15PrototypeCreate objects by cloning from templates
- 16MementoStore & Load the internal state of an object
- 17StateChange object behaviour depending on situation
- 18FlyweightShare a global state and vary differences only when needed
- 19VisitorAdd behaviour on aggregates of different objects
- 20StrategySubstitute behaviour later
- 21CommandEncapsulate a request. Decouple invocation from execution.
- 22CompositeHandle different granularities of objects uniformly
- 23Template-MethodDefine methods and let children implement the behaviour
- 24MediatorMediate communication between multiple objects
- 25BridgeDecouple abstractions from implementations
- 26BlackboardCollaborate on common data to get the best solution
- 27MicrokernelRoute requests to the responsible components
- 28Messaging FamilyPack information in messages and send these messages between components
- 29MessagesEncapsulate information in a standardized way
- 30Message EndpointProvide functionality to send and receive messages
- 31Request-ResponseAnswer every request with a response message
- 32Message TranslatorTranslate between different message formats
- 33Message Router / Message QueuesTransmit messages to the right receiver
- 34Message BusProvide a common communication platform which can be used to send and receive messages
- 35RequestorSend generic requests and arguments
- 36ObserverInform registered observers about changes
- 37LocksEnsure mutual exclusive access to some resource
- 38Scoped-LockingUse language scope semantics for acquiring and releasing locks
- 39Double checked lockingCheck twice to ensure conditions
- 40MonitorSynchronize method calls to an object
- 41FutureSupply a placeholder for future results
- 42Active-ObjectEncapsulate method invocation and execute asynchronously
- 43Thread-Specific StorageStore separate data instances for each thread
- 44Async / AwaitExecute functions cooperatively in an event loop
- 45Lazy AcquisitionDefer acquisition of resources to time of actual usage
- 46Eager AcquisitionAcquire resources in advance
- 47Partial AcquisitionAcquire resource in parts. Only use the part which is currently needed.
- 48Caching & PoolingSave resources for later reuse
- 49LeasingSet expire-timeout for resources
- 50Garbage CollectorMaintain reference-graph of objects and delete unreachable branches
- 51Chain of ResponsibilityForward a call until an object can handle it.
- 52Counted Pointer / Smart Pointer / ...Count references and call destructor when no one is using the object anymore
- 53Interpreter / Abstract Syntax TreeRead expressions one after another and build a tree of expressions
- 54Are Design Patterns invented?No, they are found.
- 55What is a pattern?A proven solution for a recurring problem.
- 56Types of Design PatternsArchitectural Patterns, Design Patterns, Idioms
- 57Pattern formatName, Context, Problem, Forces, Solution, Consequences, Known uses
- 58Principles of good programmingDecomposition, Abstraction, Decoupling, Usability & Simplicity
Information
- Description
- Master Design Patterns Flashcards on Patterns, created by David Abel on 20/01/2023.
- Created by
- David Abel
- Views
- 17
- Rating