[ComponentDesignPatterns | CategoryProtoPattern]
Pattern: Individual Packaging
Component classes must be "packaged" so that they can be deployed. Packaging supports the integration of components into a system by providing the ability to instantiate components, query their interfaces and bind them to the roles that they must play in the AbstractInteractions used in the system.
You are developing multiple component classes for use within a ComponentFramework. They must be packaged for deployment.
Too many component classes in one package can introduce redundant deployment for users who don't need all the classes.
Packaging component classes individually increases initialisation time if the classes is linked into the system at run-time.
The design of these components is very loosely coupled. Most systems would use one of the components, but not many of the components in concert.
Or You are deploying your components over a slow network connection.
Package each component class in a single independent binary unit.
IndividualPackaging reduces the overhead due to redundant code being loaded into the system.
However, IndividualPackaging increases initialisation time if more than one of the components is used in the same system. Use GroupPackaging if this is likely to be the case.