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 ...

Get Scala Functional Programming Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.