Course Contents
The content revolves around the use of object-oriented design patterns, these patterns being applicable to many situations and frameworks in the Java marketplace. The course is built around a central practical application, and can be delivered using either Eclipse or Oracle JDeveloper as the IDE.
Introduction and Web Application Architecture Explained
- Layering an Application
- A Logical 3-tier architecture
- Presentation Tier: MVC Pattern
- Data Access Tier: Data Access
- Objects Pattern
- Business Logic Tier: Using Design Patterns
Design by Patterns
- Why do we need Patterns?
- The “Gang of Four”.
- Common Elements of Object-Oriented Patterns
- Patterns to Aid Encapsulation, Polymorphism, Loose Coupling, Reuse and Maintainability
- Refactoring as a Way of Life
- Why Tests are Important
- Write to Interfaces and NOT to Implementation
- Favour Composition over Inheritance
Creational Patterns
- Replace Constructors with Factory Classes
- Replace Global with Singleton
Structural Patterns
- Adapter Pattern to Aid Code Reuse
- Tree-style Hierarchies with Composite Pattern
- Adding to Functionality with Decorator Pattern
- Controlling Object Access with Proxy Pattern
Behavioural Patterns
- Encapsulate Invocation with Command
- Loose Coupling with Observer
- Exposing Collections with Iterator Pattern
- Controlling Behaviour with StatePattern
- Strategy: Algorithms as Objects
Putting it All Together
- Thinking in Patterns
- Avoid Pattern Overuse
- Anti-Patterns
- Refactoring to Patterns