8568  Reviews star_rate star_rate star_rate star_rate star_half

Java Design Patterns

This Design Patterns in Java course gives learners a comprehensive understanding of various design patterns and their practical applications in Java development. This hands-on course allows learners...

Read More
$3,500 USD
Duration 3 days
Course Code JAV-403
Available Formats Classroom

Overview

This Design Patterns in Java course gives learners a comprehensive understanding of various design patterns and their practical applications in Java development. This hands-on course allows learners to recognize common design problems and apply proven solutions to build more robust, maintainable, and scalable software systems.

Skills Gained

  • Understand how a Java Specialist thinks when designing a Java system.
  • Recognize how each pattern is used in the Java Development Kit (JDK).
  • Appreciate how the Java Virtual Machine optimizes well-factored code on-the-fly.
  • Implement patterns in a thread-safe manner.
  • Utilize modern Java 8 lambdas and Java 11 features to simplify design pattern implementations.
  • Identify how the Singleton can introduce "code smells".
  • Eliminate copy & paste code and reduce the use of switch and if-else statements.
  • Enhance team communication by adopting a richer design vocabulary.

Prerequisites

Prior Knowledge: Participants should have a good understanding of object orientation concepts such as inheritance, encapsulation and polymorphism. Knowledge of Java is an advantage. Preparation: Read the book Head First Design Patterns. Equipment: Computers with the latest version of Sun JDK preinstalled, together with either Eclipse or IntelliJ IDEA.

Course Details

Schedule

Our Design Patterns Course takes a total of 21 lectures. Each pattern is followed by a short group discussion and then some hands-on exercises to apply what we have learned. The course can be delivered either as classroom or as live virtual class. The classroom training would usually be done in a three day block. Here is the typical schedule:

  • Day 1: Introduction, Proxy, Adapter, Facade, Composite, Template Method, Strategy
  • Day 2: Iterator, Observer, Singleton, Factory Method, Abstract Factory, Visitor, Command
  • Day 3: Memento, Chain of Responsibility, State, Flyweight, Bridge, Decorator, Conclusion
  • The live virtual classes are presented via webinar and can be done over a longer period. For example, three lectures a week over a 7 week period. This gives students a longer time to assimilate the new information and to complete all of the exercises.
  • Exercises:
  • It is very important that students try to apply the pattern in code. We spend approximately 46% of our time doing active hands-on labs.
  • During classroom courses, we check that everyone is indeed completing all the required tasks.
  • With live virtual classes, we need to use another approach. Some of our clients have policies that their staff may not send out source code. This makes it hard for them to submit their solutions.
  • Instead, at the start of each session, students have to confirm whether they have completed the previous exercise. Late arrival or abstentions are counted as a "no". We then spend ten to fifteen minutes going over our model solution to show what we expected from them.
  • Timing of classroom course:
  • Each days training starts at 9:00am and ends at 5:00pm, with one hour of lunch and 30 minutes of tea / coffee / nicotene breaks.
  • Timing of live virtual sessions:
  • Each session takes approximately an hour, including the group discussion and our look at the previous exercise solutions. Exercises for each pattern will take anything from fifteen minutes to an hour, depending on the skill and coding experience of the student.

Introduction

  • Lay of the Land
  • Why Learn Patterns
  • What is a Design Pattern
  • References Used in Course
  • Unified Modeling Language (UML)
  • Java Memory Management
  • Java HotSpot Optimizations
  • Modern Java Syntax

Abstract Class Pattern (PLoPD4)

  • Abstract Class Pattern Exercise Walkthrough

Builder Pattern (Effective Java)

  • Builder Exercise 1 Walkthrough
  • Builder Exercise 2 Walkthrough

Essence Pattern (PLoPD4)

Memento Pattern

  • Memento Pattern Exercise 1 Walkthrough
  • Memento Pattern Exercise 2 Walkthrough

Proxy Pattern

  • Proxy Pattern Exercise 1 Walkthrough
  • Proxy Pattern Exercise 2 Walkthrough

Flyweight Pattern

Strategy Pattern

  • Strategy Exercise 1 Walkthrough
  • Strategy Exercise 2 Walkthrough

Null Object Pattern (PLoPD3)

  • Null Object Exercise Walkthrough

Iterator Pattern

  • Iterator Pattern Exercise Walkthrough

Factory Method (Refactoring)

Template Method Pattern

  • Template Method exercise

Composite Pattern

  • Composite Exercise Walkthrough

Visitor Pattern

  • Visitor Exercise Walkthrough

Acyclic Visitor Pattern (PLoPD3)

  • Acyclic Visitor Exercise Walkthrough

Object Recursion Pattern (PLoPD4)

Default Visitor Pattern (PLoPD3)

  • Default Visitor Exercise Walkthrough

Adapter Pattern

  • Adapter Exercise Walkthrough

Command Pattern

  • Command Exercise 1 Walkthrough
  • Command Exercise 2 Walkthrough

Decorator Pattern

  • Decorator Exercise Walkthrough

Extension Object Pattern

Singleton Pattern

  • Singleton Exercise 1 Walkthrough
  • Singleton Exercise 2 Walkthrough
  • Singleton Exercise 3 Walkthrough

State Pattern

  • State Exercise Walkthrough

Facade Pattern

  • Session Facade Pattern (JEE)

Prototype

Abstract Factory Pattern

  • Abstract Factory Exercise Walkthrough

Interpreter Pattern

  • Interpreter Exercise Walkthrough

Mediator Pattern

Observer Pattern

  • Observer Exercise Walkthrough

Bridge Pattern

  • Bridge Exercise Walkthrough

Chain of Responsibility Pattern

  • Chain of Responsibility Exercise Walkthrough

Conclusion

Schedule

FAQ

Does the course schedule include a Lunchbreak?

Classes typically include a 1-hour lunch break around midday. However, the exact break times and duration can vary depending on the specific class. Your instructor will provide detailed information at the start of the course.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does Ascendient Learning deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

What does vendor-authorized training mean?

As a vendor-authorized training partner, we offer a curriculum that our partners have vetted. We use the same course materials and facilitate the same labs as our vendor-delivered training. These courses are considered the gold standard and, as such, are priced accordingly.

Is the training too basic, or will you go deep into technology?

It depends on your requirements, your role in your company, and your depth of knowledge. The good news about many of our learning paths, you can start from the fundamentals to highly specialized training.

How up-to-date are your courses and support materials?

We continuously work with our vendors to evaluate and refresh course material to reflect the latest training courses and best practices.

Are your instructors seasoned trainers who have deep knowledge of the training topic?

Ascendient Learning instructors have an average of 27 years of practical IT experience and have also served as consultants for an average of 15 years. To stay current, instructors spend at least 25 percent of their time learning new, emerging technologies and courses.

Do you provide hands-on training and exercises in an actual lab environment?

Lab access is dependent on the vendor and the type of training you sign up for. However, many of our top vendors will provide lab access to students to test and practice. The course description will specify lab access.

Will you customize the training for our company’s specific needs and goals?

We will work with you to identify training needs and areas of growth.  We offer a variety of training methods, such as private group training, on-site of your choice, and virtually. We provide courses and certifications that are aligned with your business goals.

How do I get started with certification?

Getting started on a certification pathway depends on your goals and the vendor you choose to get certified in. Many vendors offer entry-level IT certification to advanced IT certification that can boost your career. To get access to certification vouchers and discounts, please contact info@ascendientlearning.com.

Will I get access to content after I complete a course?

You will get access to the PDF of course books and guides, but access to the recording and slides will depend on the vendor and type of training you receive.

How do I request a W9 for Ascendient Learning?

View our filing status and how to request a W9.

Reviews

It is very good and very simple instructions. almost to much hand holding.

I like their training. A lot of material covered. The labs are very good. l learned a lot.

The training was good but needed the basic skills of maximo before getting deep in the configuration of it.

Good training materials and lecture. And hands on lab and the instructor guiding was good.

The format of the class was concise. I learned new skills to use at my workplace.