Duration
5 days
Objective
To familiarize participants with concept of Design Patterns and their applications in object-oriented programming languages.
Participants’ Entry Profile
Experience in OOPS Language is a must – Java, C++
Setup Requirements
Participant’s as well as Trainer’s Machine are required to have :
Hardware
Intel Dual Core
8 GB RAM
SVGA Colour Monitor
LAN Connectivity
100MB HDD (Free Space)
Software
Windows 7+
Microsoft SQL Server 2000/2005, Northwind
Sample Database
Microsoft Visual Studio .Net 2017 Ultimate or
Professional or Community
Training Lab Requirements
Whiteboard Recommended size - 6 feet by 4 feet
Whiteboard markers – Red, Blue, Green, Black
Video Projector (1024 X 768 resolutions)
Course Outline
Object Oriented Design Principles
- Single Responsibility Principle
- Opened Closed Principle
- Liscov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Design Patterns
- What are design patterns?
- What kind of problems do they solve?
- What makes a pattern a “pattern”?
- Benefits and drawbacks of patterns.
- Design Patterns in Real Life
- Software Design Patterns – Gang Of Four
Pattern Catalog
- Creational Patterns – Initialize and configure objects
- Structural Patterns – Decouple interface and implementation
- Behavioral Patterns – Dynamic interaction between classes and
- Objects
Applying Patterns
- Communicable Name
- Intent
- Force(s) addressed
- Structure and Collaboration
- Consequences
- Known uses
- Related pattern(s)
Creational Patterns
- Singleton Pattern – Restricting multi-instance problem in given context
- Class Factory (non GoF) – Dynamically creating objects at runtime
- Factory method – Deferring creation to subclasses
- Abstract Factory – Creating family of related classes
- Prototype – Cloning objects for enhanced performance
- Builder – Constructing complex objects incrementally
Structural Patterns
- Adapter – Translating Server interface for the client
- Bridge – Abstraction binding one of many implementations
- Composite – Building recursive aggregations
- Decorator – Extending objects transparently
- Facade – Building a simple interface for complex subsystems
- Flyweight – Sharing fine-grained objects efficiently
- Proxy – Approximating target object
Behavioral Patterns
- Chain of responsibility – Routing requests thru a list of service providers
- Command – Encapsulation request in objects and dispatching
- Interpreter – Implementing small language grammar
- Iterator – Accessing aggregation/collection sequentially
- Mediator – Coordinate interaction between associates
- Memento – Capture and Restore object’s state’s snapshots
- Observer – Implementing update notification when subject changes
- State – Object behavior change based on current state
- Strategy – Substitute algorithms dynamically at runtime
- Template Method – Deferring algorithm steps selectively to subclasses
- Visitor – Externalizing operations on a object’s structure
Q/A
DISCLIAMER: Training will be based on hands-on.
Programme scope, delivery arrangements and suitability are confirmed during enquiry.