Principles of Package Design

Creating Reusable Software Components

  • MatthiasĀ Noback

Table of contents

  1. Front Matter
    Pages i-xix
  2. Class Design

    1. Front Matter
      Pages 1-2
    2. Matthias Noback
      Pages 3-10
    3. Matthias Noback
      Pages 11-30
    4. Matthias Noback
      Pages 31-53
    5. Matthias Noback
      Pages 55-66
    6. Matthias Noback
      Pages 67-104
  3. Package Design

    1. Front Matter
      Pages 105-114
    2. Matthias Noback
      Pages 115-144
    3. Matthias Noback
      Pages 145-170
    4. Matthias Noback
      Pages 171-184
    5. Matthias Noback
      Pages 185-216
    6. Matthias Noback
      Pages 217-235
    7. Matthias Noback
      Pages 237-249
    8. Matthias Noback
      Pages 251-256
  4. Back Matter
    Pages 257-275

About this book


Apply design principles to your classes, preparing them for reuse. You will use package design principles to create packages that are just right in terms of cohesion and coupling, and are user- and maintainer-friendly at the same time.

The first part of this book walks you through the five SOLID principles that will help you improve the design of your classes. The second part introduces you to the best practices of package design, and covers both package cohesion principles and package coupling principles. Cohesion principles show you which classes should be put together in a package, when to split packages, and if a combination of classes may be considered a "package" in the first place. Package coupling principles help you choose the right dependencies and prevent wrong directions in the dependency graph of your packages.

What You'll Learn:
  • Apply the SOLID principles of class design
  • Determine if classes belong in the same package
  • Know whether it is safe for packages to depend on each other


SOLID principles package design principles object design component design dependencies coupling cohesion reusability Domain-Driven Design object design test-driven development

Authors and affiliations

  • MatthiasĀ Noback
    • 1
  1. 1.ZeistThe Netherlands

Bibliographic information

Industry Sectors
Finance, Business & Banking
IT & Software
Energy, Utilities & Environment