O'Reilly logo

Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing, 4th Volume by Douglas C. Schmidt, Kevlin Henney, Frank Buschmann

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 12. Interface Partitioning

Interface Partitioning

Maskebærere (Mask Bearers) by Hilde Mæhlum, on display at Bærum Verk near Oslo © Kevlin Henney

Specifying component interfaces is a significant activity in a software project. Interfaces should reflect component responsibilities and usage protocols clearly, provide meaningful services for clients, and hide clients from the cost of change and evolution of component implementations. Otherwise, components become hard to use and their collaborations tend to be complex. This chapter presents eleven patterns for specifying well-defined component interfaces that expose the qualities listed above.

Interfaces are the 'business card' of a component. They should inform clients about the component's responsibilities, offered services, and usage protocols, and should make it easy for clients to collaborate with the component effectively and correctly. Consequently, designing and specifying usable and meaningful component interfaces is a key to successful software development. In addition, the productive use of software development and deployment approaches such as Component-Based Development [Szy02] and Service-Oriented Architectures (SOA) [Kaye03] depends strongly on the quality of the available service and component interfaces. Ultimately, inappropriately specified interfaces decrease the usability of a component, while increasing the structural complexity of ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required