small medium large xlarge

Interface Oriented Design


Cover image for Interface Oriented Design

Interface Oriented Design


Learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.

You’ll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations.

About this Title

Pages: 240
Published: 2006-06-01
Release: P2.0 (2007-05-14)
ISBN: 978-0-9766-9405-2

Interface Oriented Design explores how to develop robust, reliable software as a collection of interfaces that interact with each other.

Learn about the most useful patterns, including Proxy, Facade, Adapter, and Factory, as well categories of interfaces including service providers, information holders, and external world interfaces.

With this book, you will:

  • Produce more understandable and maintainable software
  • Create more cohesive and less coupled designs
  • Apply more appropriate implementations to interfaces
  • Understand the different styles of interfaces
  • Apply object-oriented concepts effectively

If you want to be a more effective programmer and create better software, you need Interface Oriented Design.


Ken Pugh has worked on software and hardware projects for over thirty years, from requirements gathering through testing and maintenance. He has a wide variety of experience with numerous operating systems, languages, and development processes. He has developed software systems extending from long-baseline interferometry to real-time goat serum process control, and embedded systems for signal processing to networked file storage.

As a teacher and mentor, he has trained thousands of students in subjects ranging from object-oriented design to UNIX operating system internals. He has presented at numerous conferences seminars on software development processes, programming techniques, and system architecture. Ken has written four books on programming and operating systems.