Pattern-Based Software Development in Java
Course Description
The essence and basic structure of a software design solution may be repeated many times, even though the realisation is different in each case. Patterns offer a technique for capturing such recurrence, allowing design experience to be understood, distilled and shared. <br> The Pattern-Based Software Development in Java course introduces patterns from the ground up, presenting principles as well as concrete examples. It develops understanding through lectures, discussion and hands-on labs, which reinforce the concepts by putting them into practice.
Duration: 3 days
Prerequisites
Programming experience in Java is assumed, and familiarity with UML is beneficial.
Objectives
- Understand what does and does not go to make up a pattern
- Understand the beneficial role of patterns in all aspects of development
- Learn and use common patterns in all aspects of development
- Appreciate patterns from the strategic level down to idiomatic examples in Java
Audience
The course is suitable for software developers familiar with object-oriented principles and practices.
Sotware Architechure
Defining architecture
Dependencies
Stability and change
Patterns
Core Pattern Concepts
Patterns in software architure
Pattern anatomy
Pole of patterns
Essential pattern form elements
Common pattern resources
Introductory Pattern Examples
General design patterns in OO
The Composite pattern
The Proxy pattern
Patterns beyond objects
Combining Patterns
Pattern catalogues
Pattern communities
Classes and patterns in JUnit
From individual to multiple patterns
The visitor pattern
Pattern Context Dependency
Context sensitivity
The client Proxy pattern
Strategic and tactical patterns
Idioms
The immutable Value pattern
The Combined Method pattern
The Data Transfer Object (DTO) pattern
Patterns for Decoupling
The Layers pattern and variations
The Fragile Base Class problem
The Explicit Interface pattern
The Separated Interface pattern
The Bridge pattern
Patterns for Adaptation
The Object Adapter pattern
The Class Adapter pattern
The Wrapped Adapter pattern
The Decorator pattern
The Template Method pattern
The Facade pattern
Patterns for Object Management
The Factory Method pattern
The Disposal Method pattern
The Manager pattern
The Leasing pattern
The Evictor pattern
Patterns for Pluggability
The Strategy pattern
The Interceptor pattern
The Null Object pattern
The Context Object pattern
The Mock Object pattern
The Command pattern
The Command Processor pattern
The Block pattern
Patterns for Iteration
The Iterator pattern
The Enumeration Method pattern
The Null Object pattern
The Context Object pattern
The Mock Object pattern
The Command Processor pattern
The Block pattern
Patterns for Object Lifecycles
Modal Behaviour
The Objects for States (State) pattern
The Methods for States pattern
The Collections for States pattern
Patterns for Notification
Event flow
The Observer pattern
The Model-View-Controller (MVC) pattern
The Event Channel pattern
The Pipes and Filters pattern
Pattern Pitfalls
Common pitfalls
Pattern applicability and quality
Dysfunctional patterns and applications
The Getters and Setters 'pattern'
The Singleton pattern (and avoiding it)