Chapter 13. Component Partitioning
Anna Buschmann, partitioning a Lego building © Frank Buschmann
Components are the implementation building blocks that provide well-defined services to their clients. How these services are realized is generally of no interest to the clients. While this black-box view is beneficial for component users, component developers cannot ignore the need for a internal component design. This chapter, therefore, presents six patterns that help to structure the implementation of a component. The focus of these patterns is on general component decomposition and the support for various component deployment scenarios in a distributed system.
Component-based software development is a key technology in modern software construction. The core idea is that software can be composed of well-defined modular building blocks, each providing a specific, coherent, and self-contained service through an interface. A defining characteristic of components and their composability is that they are based on a strong form of encapsulation and a range of choices concerning application binding time and location. This strong encapsulation of implementation details yields the two primary benefits of component-based software development:
Productivity. If the components that are used in the development of an application already exist or can be purchased as third party products, this can markedly ...
Get Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing, 4th Volume 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.