Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
26 Cards in this Set
- Front
- Back
What are design patterns |
General, reusable solutions to commonly occuring problems in software design. A description or template for how to solve a problem that can be used in many different situations. |
|
Advantages of a design pattern |
Speed up the development process. Helps to prevent subtle issues that can cause major problems. Improves readability of the code. Provides patterns for solving problems. |
|
Three categories of design patterns
|
Creational - Focuses on how objects are created. Structural - Focuses on how objects are interconnected. Behavioral - Focuses on objects that handle particular types of behavior. |
|
Strategy Pattern |
Defines a family of algorithms, encapsulates each one, and makes them interchangeable. |
|
Observer Pattern |
Defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. |
|
Decorator Pattern |
Attaches additional responsibilities to an object dynamically. [pattern] provide a flexible alternative to subclassing for extending functionality. |
|
Factory Method Pattern |
Defines an interface for creating an object, but lets subclasses decide which class to instantiate. [pattern] lets a class defer instantiation to subclasses. |
|
Abstract Factory Pattern |
Provides an interface for creating families of related or dependent objects without specifying their concrete classes. |
|
Singleton Pattern |
Ensures a class has only one instance, and provides a global point of access to it. |
|
Command Pattern |
Encapsulates a request as an object, thereby letting you parameterize other objects with different requests, queue or log requests, and support undoable operations. |
|
Adapter Pattern |
Converts the interface of a class into another interface the client expect. [pattern] lets classes work together that couldn't otherwise because of incompatible interfaces. |
|
Facade Pattern |
Provides a unified interface to a set of interaces in a subsystem. [pattern] defines a higher-level interface that makes the subsystem easier to use. |
|
Template Method Pattern |
Defines the skeleton of an algorithm in a method, deferring some steps to subclasses. [pattern] lets sub-classes redefine certain steps of an algorithm without changing the algorithm's structure. |
|
Iterator Pattern |
Provides a way to access the elements of an aggregation object seqentially without exposing its underlying reresentation. |
|
Composite Pattern |
Allows you to compose objects into tree structures to represent part-whole hierarchies. [pattern] lets clients treat individual objects and compositions of objects uniformly. |
|
State Pattern |
Allows an object to alter its behavior when its internal state changes. The object will appear to change its class. |
|
Proxy Pattern |
Provides a surrogate or place holder for another object to control access to it. |
|
Bridge Pattern |
Decouples an abstraction from its implementation so that the two can vary independently. |
|
Builder Pattern |
Separates the construction of a complex object from its representation so that the same construction process can create different representations. |
|
Chain of Responsibility Pattern |
Avoids coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. |
|
Flyweight Pattern |
Uses sharing to support large numbers of fine-grained objects efficiently. |
|
Interpreter Pattern |
Defines a representation of a grammar for a language along with an interpreter that uses the representation to interpret sentences in the language. |
|
Mediator Pattern |
Defines an object that encapsulates how a set of objects interact. [pattern] promotes loose coupling by keeping objects from referring to each other explicitly, and lets you vary their interaction independently. |
|
Momento Pattern |
Without violating encapsulation, captures and externalizes an object's internal state so that the object can be restored to this state later. |
|
Prototype Pattern |
Specifies the kinds of objects to create using a prototypical instance, and create new objects by coping this prototype. |
|
Visitor Pattern |
Represents an operation to be performed on the elements of an object structure. [pattern] lets you define a new operation without changing the classes of the elements on which it operates. |