Java Software Development Masterclass

Learn the best practices for Java software development

Get in touch

Designing good software is a problem that we all struggle with. How do you craft maintainable software? What are the current best practices that adapt to business needs? When should you apply them?

This expert-led masterclass will teach you how to apply best software development practices in terms of object-oriented programming, generics programming, functional programming, testing and design patterns. From the start you will work through hands-on coding and refactoring exercises to demonstrate how to transfer this knowledge into practical Java code.

No matter if you’re a recent graduate or an experienced developer this intensive masterclass will help grow and improve your technical skillset.

Duration: Three or Five days

Course Outline

Advanced Object-Oriented Design

  • Coupling
  • Class-level cohesion
  • Method-level cohesion
  • Single responsibility principle
  • Open-closed principle
  • Liskov-substitution principle
  • Law of Demeter

Generics and Collections

  • Benefits and motivation
  • How to use generic classes
  • How to declare generic classes
  • Advanced generics (variance and generic methods)
  • Core collection features
  • Appropriate choice of collections

Design Patterns

  • Design Principles and motivation
  • Strategy
  • Adapter
  • Chain of Responsibility
  • Decorator
  • Optional
  • Immutable Value Objects
  • Observer
  • Factory


  • Introduction to automated testing
  • Testing Best Practices
  • Test Doubles: Mocks, Stubs and Fakes
  • Dependency Injection
  • Test Driven Development
  • Page Objects and DOM Querying
  • Behaviour-driven Development

Functional Programming

  • Behaviour parameterisation
  • Lambdas and Method references
  • Functional interfaces and type inference
  • Functional style data processing with Streams and Collectors

Schedule this course

Let us know your requirements and we will craft a tailored proposal for your team.

Drop us a line with a phone number to call back at

You can also give us a call directly on +44 7931 144 219