Skip to main content

Principles of Package Design

Creating Reusable Software Components

  • Book
  • © 2018


  • Introduces SOLID principles: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
  • The first book to provide extensive coverage of component/package design principles
  • Offers easy-to-read but advanced design principles, making it valuable to many software developers with a broad range of experience in the field

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

Licence this eBook for your library

Institutional subscriptions

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

Who This Book Is For

Software developers with a broad range of experience in the field, who are looking for ways to reuse,share, and distribute their code

Similar content being viewed by others


Table of contents (12 chapters)

  1. Class Design

  2. Package Design

Authors and Affiliations

  • Zeist, The Netherlands

    Matthias Noback

About the author

Matthias Noback is a professional PHP developer. He runs his own web development, training, and consultancy company called Noback's Office. In the past, he has worked as a software developer at Driebit (Amsterdam) and IPPZ (Utrecht), and as CTO at Ibuildings (Utrecht). Since 2011 he has been regularly writing on his blog about advanced software development topics. Favorite topics include software architecture, legacy code, testing, and object design. Other books by Matthias are A Year with Symfony and Microservices for Everyone.

Bibliographic Information

Publish with us