Like a BlackBox, except that the ComponentObjectModel also allows parameterization or even extension of the component.
See AspectOrientedProgramming