Abstraction and interfaces

Extension points make use of both abstraction and interfaces to permit and encourage reuse of functionality.

In the following diagram, Deposit Money declares an extension point called Transfer to savings. If we consider this to be an existing piece of code, and for the sake of this example, if we want to create a new Savings Account object, we can extend the functionality already provided by Deposit Money and use this to implement a new feature called Savings Account, which extends Deposit Money. This means that it will use most of the Deposit Money functionality, and it will also offer additional functionality of its own.

In another example, we are extending the existing Open Account code to Add Joint Account Holder

Get Extending Jenkins 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.