Click here for full text:
Composite Filter Pattern
Yacoub, Sherif M.
Keyword(s): design patterns; 00 design; filters; document understanding
Abstract: The design of many software systems often involves the manipulation and processing of digital media or digital content . For instance, the ability to deliver e-services through internet-based delivery channels requires that printed material such as books or articles be converted into forms suitable for electronic distribution. This type of processing often includes preprocessing of the digital media, transformation from one format to another, extraction of metadata information, segmentation of content, and in many cases verification and validation of the resulting data. These types of systems among others could be thought of as the integration, composition, and cascade of processing modules or units. We call these processing modules filters. Each filter manipulates input data and delivers output data to other filters after executing a specific data processing function. The design of such filtering mechanism is often implemented in systems that manipulate large volume of digital media such as images or streams of data. Filtering systems should be designed in a way that enables the integration of different types of filters whether simple, cascade, or composites. A design that is not limited to specific mechanisms for data filtering is itself usable in multiple applications. We call this design the Composite Filter pattern, which integrates the design of several well-known design patterns: Strategy pattern [Gamma+95], Filter pattern [Grand98], and Composite pattern [Gamma+95]. Whereas the integration of several patterns does not necessarily result in a new pattern, we find the design developed by integrating these patterns useful in the implementation of filtering subsystems. This integration provides a robust versatile design solution, which is often used in applications that require various types of data filtering. The Composite Filter pattern provides the designer with flexible ways for configuring and integrating filters. Notes: To be presented at and published in EuroPLoP 2001, 4-8 July 2001, Irsee, Germany.
Back to Index