11.0. Defining Subsystems

A subsystem can be thought of as a small system in and of itself. Subsystems, as defined in this book, focus on a reusable asset that other components within our application use. These other components, however, are bound to a well-defined interface that the subsystem exposes, which enables us to effectively alter implementations without modifying those elements dependent on the subsystem interface. A subsystem typically is the result of identifying some aspect of a system that exhibits largely independent characteristics from that system. Let's examine the following characteristics of a subsystem:

  • <<subsystem>> stereotyped package

  • Well-defined interface

  • Interface implemented by public proxy class

  • All classes package scope ...

Get Java™ Design: Objects, UML, and Process 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.