-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDesign Patterns
More file actions
52 lines (42 loc) · 2.54 KB
/
Design Patterns
File metadata and controls
52 lines (42 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
*******************
CREATIONAL
*******************
These design patterns are all about class instantiation. This pattern can be further divided into class-creation patterns and
object-creational patterns. While class-creation patterns use inheritance effectively in the instantiation process, object-creation
patterns use delegation effectively to get the job done.
Abstract Factory: Creates an instance of several families of classes
Builder: Separates object construction from its representation
Factory Method: Creates an instance of several derived classes
Object Pool: Avoid expensive acquisition and release of resources by recycling objects that are no longer in use
Prototype: A fully initialized instance to be copied or cloned
Singleton: A class of which only a single instance can exist
*******************
STRUCTURAL
*******************
These design patterns are all about Class and Object composition. Structural class-creation patterns use inheritance to compose
interfaces. Structural object-patterns define ways to compose objects to obtain new functionality.
Adapter: Match interfaces of different classes
Bridge: Separates an object’s interface from its implementation
Composite: A tree structure of simple and composite objects
Decorator: Add responsibilities to objects dynamically
Facade: A single class that represents an entire subsystem
Flyweight: A fine-grained instance used for efficient sharing
Private Class Data: Restricts accessor/mutator access
Proxy: An object representing another object
*******************
BEHAVIORAL
*******************
These design patterns are all about Class's objects communication. Behavioral patterns are those patterns that are most specifically
concerned with communication between objects.
Chain of responsibility: A way of passing a request between a chain of objects
Command: Encapsulate a command request as an object
Interpreter: A way to include language elements in a program
Iterator: Sequentially access the elements of a collection
Mediator: Defines simplified communication between classes
Memento: Capture and restore an object's internal state
Null Object: Designed to act as a default value of an object
Observer: A way of notifying change to a number of classes
State: Alter an object's behavior when its state changes
Strategy: Encapsulates an algorithm inside a class
Template method: Defer the exact steps of an algorithm to a subclass
Visitor: Defines a new operation to a class without change