O'Reilly logo

Scala Functional Programming Patterns by Atul S. Khot

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Frills and thrills – the decorator pattern

We need to add the functionality whereby animals get inoculated by a vet. Also, an animal should be inoculated only once. In practice, we would normally inoculate them at intervals. However, we simplify things to make our point. We want to wrap the logic "if already inoculated, then skip" without touching the animal code. The decorator pattern now comes to our rescue.

A decorator is a design pattern that wraps an object. It mimics the interface of the object that it is decorating. Here is the Java code in which we will look at how Scala makes the pattern easy and breezy.

The Java listing here has just the necessary changes. Refer to the book source code for the complete listing:

public class AnimalDecorator ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required