JGym.IO Live - Dynamic Proxies in Java - 16-17 March 2021
Don't repeat yourself. The mantra of the effective Java programmer. However, often we need to create similar looking classes for slightly different interfaces in Java. In some cases this can amount to thousands of lines of code. In this course, we learn how to use dynamic proxies to create classes dynamically. We show how thousands of lines of similar looking code is transformed into a few dozen, using the techniques in this course. We study four different variants of this pattern: dynamic proxy, dynamic object adapter, dynamic filter and dynamic composite.
This course will open your mind to new ways of solving the problem of duplicate code. You will also learn how code can be generated dynamically by frameworks. It covers the material in a book written by the course author, and a PDF is included in the course handouts. The course is also available for self-study or as a booked in-house course.
This course includes two live sessions of 4 hours each on the 16th and 17th of March 2021 with Dr Heinz M. Kabutz. Each pattern has exercises to solve. Heinz shows model solutions and is always happy to answer your questions.
What you'll learn - and how you can apply it
- Introduction to some of the related patterns: proxy, adapter, decorator and filter
- How to write proxies by hand
- How to create dynamic proxies
- How the adapter, decorator and composite can be created dynamically
- How the Java Platform Module System (JPMS) interacts with dynamic proxies
- How to match between methods in different classes quickly and efficiently
- In one of our exercise, we will build a complete JDBC driver that we can use for measuring how long each database operation takes
How do these LIVE classes work?
Our LIVE classes consist of two 4-hour sessions. They are highly interactive, with exercises, discussions, and walkthroughs of the solutions. Sessions are not recorded. We welcome questions at any time during the live session.
Each 4-hour session runs from 7am to 11am Los Angeles Time.
Once you enrol in this course, we will sign you up for the webinar. Our system will send you login details. These are personal to you so please do not share them (otherwise you might lose access to the course).
LIVE Class Calendar
- Welcome to the course and overview of what dynamic proxies are and why we should care about them
1: Design Patterns Cousins
- Brief overview of design patterns we will use in the course: Proxy, Adapter, Decorator, Composite, and Chain of Responsibility
2: Handcrafted Proxies
- Different types of proxies: Virtual Proxy, Remote Proxy, Protection proxy
- Cascaded Proxies
- equals() in proxies
- Exercise creating a JDBC driver by hand for monitoring how long database calls take
3: Dynamic Proxies
- Dissecting a Dynamic Proxy
- Recasted Exceptions
- Proxies Facade
- Virtual Dynamic Proxy
- Synchronized Dynamic Proxy
- Cascading Dynamic Proxies
- Dynamic Proxy Restrictions
- Exercise changing our JDBC driver to use dynamic proxies, thus reducing the amount of code by 30x
4: Dynamic Decorator
- Filtering for Immutability
- Exercise filtering Queue to remove unwanted methods
5: Dynamic Object Adapter
- Better Collections
- Dynamic Object Adapter Restrictions
- Exercises having fun with singers and rappers, and writing own ChainedInvocationHandler
6: Dynamic Composite
- Mailing List
- Composing Appendable Dynamically
- Exercise combining the visitor with composite
- Course wrap-up and next steps
- This training is for intermediate to advanced Java programmers
- It is recommended to do the "Design Patterns Deep Dive" LIVE course prior to this class
- Students should download and install the exercises found in the Resources chapter of the course material
Get started now!
Heinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 145 countries. His book “Dynamic Proxies (in German)” was #1 Bestseller on Amazon.de in Fachbücher für Informatik for about five minutes until Amazon fixed their algorithm. Thanks to a supportive mother, he has now sold 5 copies.
Heinz’s Java Specialists’ newsletter is filled with amusing anecdotes of life on the Island of Crete. He is a popular speaker at all the best Java conferences around the world, and also at some of the worst. He teaches Java courses in classrooms around the world, where his prime objective is to make absolutely sure that none of his students fall asleep. He is not always successful.