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;
21 Cards in this Set
- Front
- Back
- 3rd side (hint)
Mediator Design Pattern
|
-Behavioral
-reduces coupling -classes communicate through Mediator |
Mediator - Interface between Colleagues
Concrete Mediator - implements Mediator interface Concrete Colleague - Communicates with other colleagues |
|
Prototype Design Pattern
|
-Creational
-avoids subclasses -avoid cost of creating 'new' objects |
Prototype - interface that defines objects, is cloneable
ConcretePrototype - implements Protoype with specifics |
|
Abstract Factory Pattern
|
-creational
-separates client from object creation -client only deals with abstract object |
Abstract Factory - interface client interacts with
Concrete Factory - method that creates new object Abstract product - product interface Product - object created by concrete factory |
|
Builder Design Pattern
|
-creational
-Constructs complex object piece by piece -often builds composite |
Director - class with collection of builders, oversees creation
Builder - Interface for new objects ConcreteBuilder - creates new objects |
|
Composite Design Pattern
|
-structural
-group of objects to be treated as a single instance |
Composite - Collection of components
Component - abstract for all components of the figure Leaf - concrete component |
|
Decorator Design Pattern
|
-structural
-adds behavior dynamically |
Decorator - interface, wraps components
Component - abstract of object Concrete Component - object Concrete Decorator - implements Decorator |
|
Adapter Design Pattern
|
-structural
-Translates from one interface to a compatible interface -Used as a wrapper to allow classes to use incompatible interfaces |
Adaptor - Interface that translates to the other interface
Adaptee - The incompatible interface Client - Class that needs the translation |
|
Bridge Design Pattern
|
-structural
-Allows different interface implementations to be used dynamically -Abstracts the abstraction |
Abstraction - defines the abstract interface & keeps reference to Implementor
Refined Abstraction - Extends interface defined by Abstraction Implementor - defines the implementation to be used ConcreteImplementor - Implements the Implementor |
|
Template Design Pattern
|
-behavioral
-defines an algorithm in a skeleton class -can change algorithm without affecting calling classes |
AbstractClass - Defines algorithm
ConcreteClass - Implements algorithm |
|
Observer Design Pattern
|
-behavioral
-event handling -when a change occurs on subject, notifies all observers |
Subject - Has list of Observers. Notifies them of changes
Observer - interface for Concrete Observer Concrete Observer - notified of change, perform action |
|
Proxy Design Pattern
|
-structural
-acts as relay -Any action taken on proxy is relayed to original object |
Subject - interface for RealSubject
RealSubject - actual object to interact with Proxy - takes request/input, forwards to RealSubject |
|
Command Design Pattern
|
-behavioral
-encapsulates a request as an object |
Invoker - calls for a command
Receiver - Actual work done Client - creates ConcreteCommand and sets Receiver Command - interface for ConcreteCommand ConcreteCommand - executes the command issued from the receiver |
|
Strategy Design Pattern
|
-behavioral
-defines a group of algorithms -allows to interchange dynamically |
Context - contains collection of Strategies to call dynamically
Strategy - algorithm interface ConcreteStrategy - implementation of the Strategy |
|
Facade Design Pattern
|
-structural
-provides simple interface for a library or API |
Facade - Interface to various packages
Package - library or function |
|
Differences between:
Adapter, Bridge, Decorator,Facade |
Adapter-converts one interface to another
Decorator-dynamically adds responsibility to interface by wrapping Facade-provides a simplified interface Bridge-dynamically change interface implementations |
|
|
Object Constraint Language
|
- Constraints in have no side effects
- No flow control - All statements return boolean - evaluated in specific context (method or class) |
|
|
4 Types of Transformations
|
1.Refactoring
2.Forward Engineering 3.Reverse Engineering 4.Model Transformation |
|
|
Refactoring
|
Restructure code without affecting external behavior
|
|
|
Forward Engineering
|
Implementing design model in code
-Map inheritance, associations, contracts to exceptions, models to tables |
|
|
Model Transformation
|
-Collapse Objects
-Delay expensive computations |
|
|
Reverse Engineering
|
Deconstruct code to learn what it does and make it do things it wasn't designed to do
|
|