Design Patterns Flashcards

1
Q

Provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.

A

Factory Method

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Lets you produce families of related objects without specifying their concrete classes.

A

Abstract Factory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Lets you construct complex objects step by step. The pattern allows you to produce different types and representations of an object using the same construction code.

A

Builder

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Lets you copy existing objects without making your code dependent on their classes.

A

Prototype

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Lets you ensure that a class has only one instance, while providing a global access point to this instance.

A

Singleton

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Allows objects with incompatible interfaces to collaborate.

A

Adapter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Lets you compose objects into tree structures and then work with these structures as if they were individual objects.

A

Composite

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Provides a simplified interface to a library, a framework, or any other complex set of classes.

A

Facade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Lets you split a large class or a set of closely related classes into two separate hierarchies—abstraction and implementation—which can be developed independently of each other.

A

Bridge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Lets you attach new behaviors to objects by placing these objects inside special wrapper objects that contain the behaviors.

A

Decorator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Lets you fit more objects into the available amount of RAM by sharing common parts of state between multiple objects instead of keeping all of the data in each object.

A

Flyweight

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Lets you provide a substitute or placeholder for another object. It controls access to the original object, allowing you to perform something either before or after the request gets through to the original object.

A

Proxy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Lets you pass requests along a chain of handlers. Upon receiving a request, each handler decides either to process the request or to pass it to the next handler in the chain.

A

Chain of Responsibility

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Lets you traverse elements of a collection without exposing its underlying representation (list, stack, tree, etc.).

A

Iterator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Lets you save and restore the previous state of an object without revealing the details of its implementation.

A

Memento

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Lets an object alter its behavior when its internal state changes. It appears as if the object changed its class.

A

State

17
Q

Defines the skeleton of an algorithm in the superclass but lets subclasses override specific steps of the algorithm without changing its structure.

A

Template Method

18
Q

Lets you separate algorithms from the objects on which they operate.

A

Visitor

19
Q

Lets you define a family of algorithms, put each of them into a separate class, and make their objects interchangeable.

A

Strategy

20
Q

Lets you define a subscription mechanism to notify multiple objects about any events that happen to the object they’re observing.

A

Observer

21
Q

Lets you reduce chaotic dependencies between objects. The pattern restricts direct communications between the objects and forces them to collaborate.

A

Mediator

22
Q

Turns a request into a stand-alone object that contains all information about the request. This transformation lets you parameterize methods with different requests, delay or queue a request’s execution, and support undoable operations.

A

Command