Running on Java 19-ea+23-1706 (Preview)
Home of The JavaSpecialists' Newsletter

3.26 DecoratedWordLibrary

Juppies 2 by Dr Heinz M. Kabutz

Our ShuffledWordLibrary and our ScrambledWordLibrary are quite similar. They both have a WordLibrary field called other, to which they delegate the method calls. Duplicate code is problematic, because if we make a mistake, this also gets duplicated. Instead of having to fix the code in a single place, we have to fix it everywhere.

We are going to create a DecoratedWordLibrary that looks similar to our ShuffledWordLibrary, but will be used as a common superclass for our ShuffledWordLibrary and ScrambledWordLibrary. What we are creating here is following a well-establish design pattern called the decorator pattern.

Our DecoratedWordLibrary has a field other that points to another WordLibrary, which is marked as final and is set in the constructor (auto generate this with ALT+Insert or right-click, Insert code). We then delete the three empty methods and delegate them to the other field, again with ALT+Insert or right click, Insert code.

Lastly, we mark our DelegatedWordLibrary as abstract, so that no one accidentally tries to construct it directly.


When you load these comments, you'll be connected to Disqus. Privacy Statement.

Table of Contents

We hope you enjoyed this tutorial. If you did, you will also enjoy our courses. We suggest you start with Extreme Java - Advanced Java, followed by Extreme Java - Concurrency Performance for Java 8.

About the Author

Heinz Kabutz Java Conference Speaker

Java Champion, author of the Javaspecialists Newsletter, conference speaking regular... About Heinz

Superpack '22

Superpack '22 Our entire Java Specialists Training in one huge bundle more...

Free Java Book

Dynamic Proxies in Java Book
Java Training

We deliver relevant courses, by top Java developers to produce more resourceful and efficient programmers within their organisations.

Java Consulting

We can help make your Java application run faster and trouble-shoot concurrency and performance bugs...

Java Emergency?

If your system is down, we will review it for 15 minutes and give you our findings for just 1 € without any obligation.